在centos 6.5上设置了mysql主从功能,记录一下。
服务器1(主)
IP:192.168.1.201
系统版本:centos 6.5
mysql版本:mysql 5.5
服务器2(从)
IP:192.168.1.202
系统版本:centos 6.5
mysql版本:mysql 5.5
这里两台服务器的系统版本和mysql版本均一致,这也是官方推荐的做法。在开始设定之前,最好能确保主库和从库一致。
1、主库和从库创建同步用户
mysql> grant replication slave, replication client on *.* to repl@'192.168.1.%' identified by '密码';
这里讲主从同步限制在局域网内。
2、主库配置
编辑mysql配置文件/etc/my.cnf,设定如下配置:
log-bin=mysql-bin binlog_format=mixed server-id = 1
binlog_format这里选用混合模式,也是mysql 5.5安装包里的my.cnf默认的值。
3、从库配置
编辑mysql配置文件/etc/my.cnf,设定如下配置:
log-bin=mysql-bin binlog_format=mixed server-id = 2 relay_log = /var/lib/mysql/mysql-relay-bin log_slave_updates = 1 read_only = 1
4、从库启动
mysql> change master to master_host='192.168.1.201', master_user='repl', master_password='100301', master_log_file='mysql-bin.000001', master_log_pos=0;
开启同步
mysql> start slave;
查看状态
mysql> show slave status\G
如果配置全都正确的话,那么主从就开始工作了。如果主从没有正常工作的话,可以通过mysql自带的命令进行调试。
出错调试
使用show slave status查看Last_IO_Error状态信息:
mysql> show slave status\G
上面这种情况表示无法正常连接到主库。因为无法连接主库,Slave_IO_State会一直显示Connecting to master。可以在从库上通过mysql客户端连接主库进行调试。
$ mysql -h 主库 -u repl -p
查看工作进程
主库上查看进程:
mysql> show processlist\G
从State信息可以看出主库已经发送完所有的binlog
从库上查看进程:
mysql> show processlist\G
其中一个是I/O线程,一个是SQL线程。