MySQL主从复制
主库:192.168.0.10 CentOS 6.5
备库:192.168.0.11 CentOS 6.5
1、编辑主库配置文件my.cnf,一般情况在/etc/my.cnf
[mysqld] log-bin=mysql-bin server-id=10 binlog-do-db=membercenter log-slave-updates=1 slave-skip-errors=1
log-bin:开启log-bin二进制日志文件
server-id:服务器唯一ID,默认是1,一般取IP最后一段
binlog-do-db:需要同步的数据库,如果需要复制多个数据库,则此参数复制多行
log-slave-updates:更新记录写入到二进制日志中
slave-skip-errors:跳过错误,继续执行复制操作
2、重启MySQL服务 service mysqld restart
3、创建复制账号
mysql> grant replication slave on *.* to slave@192.168.0.11 identified by '123456' ;
mysql> flush privileges;
注意,由于replication角色是全局的,所以不能针对于某个库授权
4、查看主库状态,得到binlog日志文件名和偏移量
mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.00001 | 172 | lepus | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
5、修改从库配置文件my.cnf,一般在/etc/my.cnf
log-bin=mysql-bin server-id=11
6、重启MySQL服务 service mysqld restart
7、配置连接主库
change master to master_host='192.168.0.10', master_user='slave',master_password='123456', master_log_file='mysql-bin.00001', master_log_pos=172;
此处要注意logfile的名称和position的值,其余host、user和password为主数据库设置的账号和密码
8、查看从库状态
mysql> show slave status\G;
Slave_IO_Running: No
Slave_SQL_Running: No
9、开始数据同步
mysql> start slave;
此时在查看从库状态,以上的两个值都显示YES。