mysql主从复制配置问题
一,基本步骤
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 = 102 relay_log = /var/lib/mysql/mysql-relay-bin log_slave_updates = 1 read_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,Operation CREATE USER failed for 从库已经存在用户xxx
解决方法:删掉这个用户,再启动slave;drop user xxx@xxx ; stop slave ; start slave;