一,基本步骤
1,创建在主从数据上都创建复制账号,权限选上super, replication slave , replication master(选上这个可以方便从库变成主库);
2,配置主库和备库配置文件 /etc/my.cnf
#master
log_bin=mysql_bin
server_id= 101 #unique id, 可以是Ip的最后几位
#slave
log_bin=mysql_bin #和上面一致
server_id= 102relay_log= /var/lib/mysql/mysql-relay-bin
log_slave_updates= 1read_only= 1
3,启动复制,使用root用户登录mysql命令行,运行以下命令
change master to master_host='192.168.0.101',master_user='repl',master_password='yourpass',master_log_file='mysql-bin.000001',master_log_pos=0;
可以用show slave status\G来查看状态;
start slave;#启动复制
在主库中可以使用 show processlist\G 查看复制状态;
二,遇到的问题
很多问题都可以用 stop slave ; reset slave ; start slave ;解决
1,File 'xxx/mysql/mysql-relay-bin.index' not found
解决方法:权限问题,更改mysql目录的权限:chown mysql.mysql xxx/mysql
2,Could not initialize master info structure
解决方法:在mysql命令行下执行:slave stop ; reset slave;
或者,把mysql data目录下的master.info 0字节文件删除
3,The slave I/O thread stops because SET @master_heartbeat_period on master failed
解决方法:数据库版本不同,安装相同版本
4,OperationCREATE USER failedfor 从库已经存在用户xxx
解决方法:删掉这个用户,再启动slave;drop user xxx@xxx ; stop slave ; start slave;