搭建两台mysql服务器
https://www.cnblogs.com/GoslingWu/p/13678461.html
修改master服务配置
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
#不同步的数据库,可设置多个
#binlog-ignore-db=information_schema
#binlog-ignore-db=performance_schema
#binlog-ignore-db=mysql
#指定需要同步的数据库(和slave是相互匹配的),可以设置多个
#binlog-do-db=test
#下面这两个不是必须要配置
#主要是为了使用带事务的InnoDB进行复制设置时尽可能提高持久性和一致性
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
- 重启mysql,使配置生效
- 创建同步用的账号
GRANT ALL PRIVILEGES ON *.* TO 'mysync'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
刷新配置
FLUSH PRIVILEGES;
- 查询master状态,记住打印出来的 File,Position 字段
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 1295 | | | |
+------------------+----------+--------------+------------------+-------------------+
修改slave配置
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=154 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
- 重启mysql服务
- 配置主从进入mysql客户端
mysql -uroot -p
# 在slave创建主从
change master to master_host='192.168.31.158',master_user='mysync',master_password='123456',
master_log_file='mysql-bin.000001',master_log_pos=154;
master_host: 主的ip
master_user:主的账号(上面我们在主服务器上创建的)
master_password:主的密码
master_log_file: 主查询master状态,记住的file字段
master_log_pos: 主查询master状态,记住的Position字段
# 启动
start slave;
# 查询slave状态
show slave status\G
# 看到 Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
主从成功,测试下吧