情况说明
- 操作系统:CentOS6.7
- 主库:MySQL-5.6.30,ip:192.168.6.10
- 从库:MySQL-5.6.30,ip:192.168.6.11
- 要同步的数据库:test_synchro
- 从库做同步操作的用户:rep1密码:test123456
- 请先安装Mysql,在从库建rep1用户。在主库和从库创建test_synchro数据库。
- 改了配置文件都要重启mysql以后才有效果
主库配置
在配置文件my.cnf下加入以下内容(改之前先备份my.cnf)
log_bin=/var/lib/mysql/binlog
binlog-do-db=test_synchro//要同步的数据库
datadir =/var/lib/mysql
server_id =1//主库写1,从库写2
//socket =/var/lib/mysql/mysql.sock
经朋友指点,这不是必要的,如果要配置socket,要在服务端和客户端参数中同时添加,否则还要建软链接给从库的用户rep1权限
mysql> grant replication slave on . to ‘rep1’@’192.168.6.11’ identified by ‘test123456’;
Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)记住主库的file和position(加粗的部分),需要配置到从库里面去的哦
如果是生产环境:记得做好备份再处理。mysqldump的时候添加备份参数–single-transaction,–master-datamysql> show master status;
+—————+———-+————–+——————+——————-+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+—————+———-+————–+——————+——————-+
| binlog.000002 | 120 | test_synchro | | |
+—————+———-+————–+——————+——————-+- 重启mysql
service mysql restart
此步有任何问题,去看/var/lib/mysql下的localhost.localdomain.err和cts01611.err文件慢慢解决。
- 重启mysql
从库配置
- 在配置文件my.cnf下加入以下内容(改之前先备份my.cnf)
server_id =2
replicate-do-db=test_synchro
//这里还可以配置relay-log,和你在主库配置的log-bin类似
修改以后重启mysql 登陆从库的mysql,修改master
mysql -u用户名 -p密码change master to master_host=’192.168.6.10’, master_user=’rep1’, master_password=’test123456’, master_port=3306, master_log_file=’binlog.000002’, master_log_pos=120;
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)mysql> show slave status\G;
***************** 1. row *****************
Slave_IO_State:
Master_Host: 192.168.6.10
Master_User: rep1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000002
Read_Master_Log_Pos: 120
Relay_Log_File: cts01611-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: binlog.000002
Slave_IO_Running: No
Slave_SQL_Running: Yes
Replicate_Do_DB: test_synchro
……..
3.应该可以了,弄个表试试效果吧