MySQL主从服务器(Replication)的设置
首先设置MySQL主服务器:
在主服务器上为从服务器建立一个用户:
grant replication slave on *.* to '用户名'@'主机' identified by '密码';
如果使用的是MySQL 4.0.2之前的版本,则用file权限来代替replication slave
编辑主服务器的配置文件:/etc/my.cnf
server-id=1
log-bin
binlog-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
binlog-ignore-db=不需要复制的数据库苦命,如果复制多个数据库,重复设置这个选项即可
注意:如果你想做一个复杂点的结构:比如说,A->B->C,其中B是A的从服务器,同时B又是C的主服务器,那么B服务器除了需要打开log-bin之外,还需要打开log-slave-updates选项,你可以再B上使用“show variables like 'log%';”来确认是否已经生效。
编辑从服务器的配置文件:/etc/my.cnf
server-id=2
master-host=主机
master-user=用户名
master-password=密码
master-port=端口
replicate-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
replicate-ignore-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
配置主从服务器的my.cnf时,留心各自的server-id一定要彼此独立,不能重复,否则,会出现如下错误:
Slave: received end packet from server, apparent master shutdown
另一个需要注意的是最好在从服务器的my.cnf里设置read_only选项,防止发生意外(连接用户不能有SUPER权限,否则无效)。
记得先手动同步一下主从服务器,数据量小的话可以用mysqldump,它有一个master-data参数很有用,通过使用此参数,导出的SQL文件里会自动包含CHANGE MASTER TO MASTER_LOG_FILE='...', MASTER_LOG_POS=...;,这样创建从服务器就更方便了。
如果数据量大的话不太适合使用mysqldump(慢),如果是myisam表的话,加上--lock-all-tables参数,如果是innodb表的话,加上--single-transaction参数。
而应该采用拷贝文件的方式,请按如下操作步骤:
先在主服务器上锁定所有的表,以免在复制过程中数据发生变化:
mysql> flush tables with read lock;
然后在主服务器上查询当前二进制文件的文件名及偏移位置:
mysql > show master status;
然后停止主服务器上的MySQL服务:
shell> mysqladmin -u root shutdown
注意:如果仅是MyISAM的话,可以不停止MySQL服务,但要在复制数据文件的过程中保持只读锁,如果是In
相关文档:
虽然很多人用mysql front, 但是个人觉得mysql还是命令行下比较好用,毕竟数据库在命令行下操作比较王道而且mysql完全免费。。
下面介绍一些mysql命令行下常用的命令,有一些数据库基础的,即使是第一次用mysql对照下面的命令操作也完全可以,如果我发现还有其它命令也是经常用到的我会陆续更新。。。
服务器:
1. 启动m ......
1.下载 MySQL 6.0免安装版
http://dev.mysql.com/get/Downloads/MySQL-6.0/mysql-noinstall-6.0.9-alpha-win32.zip/from/pick#mirrors
2.将 MySQL6.0 解压到待安装目录(自己决定放到哪)。解压后默认文件夹名称为:mysql-6.0.9-alpha-win32(当然可以自己更改),然后在环境变量中设置MYSQL_HOME(这样,以后可以用%MYSQL ......
在root账号中,可以正常调用存储过程.
换到common_user账号时,同一存储过程名调用出现问题.
追踪调试时出现:
SELECT command denied to user 'common_user'@'localhost' for table 'proc'
搜索解决方案:
MySqlConnection myconnection = new MySqlConnection("server=localhost;user id=common_user; password=***;dat ......
[原创] MySQL数据库存储引擎和分支现状
在MySQL经历了2008年Sun的收购和2009年Oracle收购Sun的过程中,基本处于停滞发展的情况,在可以预见的未来,MySQL是肯定会被Oracle搁置并且逐步雪藏消灭掉的。MySQL随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让MySQL有希望继续发扬光大起来。
本 ......
create database testdb; /* 创建数据库 */
use testdb; /* 打开数据库 */
/*grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利*/
grant select,insert,update,delete on testdb.* to common_user@'%';
grant select,insert,update,delete on testdb.* to common_user@'localhost'; ......