1、编辑主库的my.cnf
在[mysqld]下添加如下配置
server-i=1 #一般默认为1,不需要修改(一般都以ip的后两位为server-id,保证全局的一致)
read-only=0#主库读写都可以
binlog-do-db=test#需要同步的数据库名称,要同步多个可以写多行
binlog-ignore-db=mysql#不需要同步的数据库名称,可以写多行
binlog-ignore-db=performance_schema
log-bin=mysql-bin #二进制日志名称,确保此文件可写
2、设置同步数据库用的账号
编辑好配置文件后,重启mysql,然后分配一个具有replication slave权限的用户
例: grant replication slave on *.* to backup@10.6.222.195 identified by '123'
3、查看主机状态
mysql>show master status;
记下 file 和 position , 这里显示的 binlog_do_db 和 binlog_ignore_db 就是第一步在配置文件中设置的。
4、编辑从库的 my.cnf
将从库的 server-id 改成与主库不一致,也可以添加 replicate-do-db 和 replicate-ignore-db 来指定同步的数据库和不同步的数据库。
server-id=2
read-only=1 # 从库只读
replicate-do-db=test
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
5、在从库上设置主库信息
编辑完配置文件后,重启从库 mysql ,然后用 change master 命令设置主库信息。
mysql>change master to master_host='10.6.208.183',master_user='backup',master_password='123',master_log_file='mysql-bin.000019',master_log_pos=746;
master_host 为主库 ip ; master_user , master_password 是第二步分配的同步用的用户名和密码; master_log_file , master_log_position 是第三步中的 file 和 position 值。
6、查看是否配置成功
start slave # 启动从数据库
show slave status \G;# 查看从库状态
若 Slave_IO_State 、 Slave_IO_Running 、 Slave_SQL_Running 状态如上图则表示配置成功。
7、主从库都配置好后,将主库的进行一个完全备份,然后导入从库,保证当前主从一致,那么以后主库的任何修改都会同步到从库上面,保证主从数据的一致性。
8、配置过程常见错误
a 、 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master_user='USER'
执行 change 命令时落了逗号。
b 、若出现 Slave_IO_Running 、 Slave_SQL_Running 状态为 no ,则从 stop slave 从新执行一遍 change master to master_host='10.6.208.183',master_user='backup',master_password='123',master_log_file='mysql-bin.000019',master_log_pos=746;
然后再 start slave 就可以了。