mysql复制功能——“master-slave”结构
一、配置主服务器
1.my.ini中添加内容
必须写在[mysqld]下
另外只要出现了binlog-do-db,下面的binlog-ignore-db均不起作用。
2.创建“复制权限”的账号
创建账号
给创建的账号授予“待复制数据库”上所有的操作权限
查看所有用户
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
查看用户权限
3.重启mysql服务
二、配置从服务器
1.my.ini中添加内容
必须写在[mysqld]下
replicate-do-table必须指明数据库名,否则mysql服务无法启动.eg:wiscom.video
log-bin和log_bin版本不同可能会略有区别
注:从库my.ini的配置中,Mysql5.5版本以上不再支持master的用法,比如5.1
中可用的(master-user = repl;master-password = repl;master-port = 3307),
如果在mysql5.5版本以上中使用该语法会导致,mysql服务无法启动。
2.重启mysql服务器
3.开启从库复制功能
a)关闭从库复制功能
stop slave;
b)设置主库连接串
change master to master_host="10.0.0.10", master_port=3306, master_user="slave1", master_password="feng" ;
注:出现警告是没关系的,只是密码是明文等提示。
此处还可指明“主库”二进制文件名和位置
eg:
查看主库信息可用以下命令完成:
c)打开从库复制功能
start slave;
d)查看从库状态
三、测试
1.连接到主库上,插入一行数据
2.在从库上执行查询
四、说明
1.版本问题
从库的版本>=主库的版本
本实验中:主库
从库
2.第一次配置从库时,从库中不应该存在“待复制的数据库名”
第一次start slave时,会在从库上创建该数据库,如果已经存在会出现无法创建数据库的错误
此时,从库上的SQL线程无法启动
详细参考:http://www.cnblogs.com/hustcat/archive/2009/12/19/1627525.html