MySQL主从复制配置记录
准备阶段#
- 两台服务器:(主 master)192.168.1.2;(从 slave)192.168.1.3
- MySQL 版本最好一样,不一样没关系,但
一定
要保证版本都在5.6.x
及以上 - 注意防火墙
- 注意放行
3306
端口 - 注意要开启 MySQL 远程连接权限
- 注意主从库的数据要保证一致
配置主服务器#
配置文件
/etc/my.cnf
配置信息
vim /etc/my.cnf
在
[mysqld]
下面配置如下:server-id=1 #必须。设置服务器id,为1表示主服务器。规范为服务器IP的最后段(一般文件里已存在,修改就行,没有加上) log_bin=mysql-bin #必须。启动MySQL二进制日志系统。(一般文件里已存在,修改就行,没有加上) binlog-do-db=jiajiale_dskjwl_ #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行。 binlog-ignore-db=mysql #不同步mysql系统数据库。
:wq! 保存退出
进入 MySQL 终端
mysql -u root -p
新建一个 MySQL 用户
salve
(下面从服务器要用到此配置)
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.%' IDENTIFIED BY 'slave'; 这里的IP是从服务器IP
刷新权限(很重要!不要漏掉!)
mysql> flush privileges;
重启 MySQL 服务
service mysql restart
再次回到 MySQL 终端,执行
mysql> show master status;
红框内的值从服务器要用到,很重要。此时不要再动主服务器了,以免 position 值变动。
配置从服务器#
配置文件
/etc/my.cnf
配置信息
vim /etc/my.cnf
在
[mysqld]
下面配置如下:server-id=2 #必须。设置服务器id,为2表示从服务器。规范为服务器IP的最后段(一般文件里已存在,修改就行,没有加上) log_bin=mysql-bin #必须。启动MySQL二进制日志系统。(一般文件里已存在,修改就行,没有加上) binlog-do-db=jiajiale_dskjwl_ #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行。 binlog-ignore-db=mysql #不同步mysql系统数据库。
:wq! 保存退出
重启 MySQL 服务
service mysql restart
进入 MySQL 终端
mysql -u root -p
执行
mysql> change master to master_host='192.168.1.2',master_user='slave',master_password='slave',master_log_file='mysql-bin.000065',master_log_pos=154;
停止 slave 从库
mysql> stop slave;
最好执行一下 第一次操作可忽略
启动 slave 从库
mysql> start slave
- 查看 slave
mysql> show slave status \G 注意此处不要分号
结果如下图:
当 Slave_IO_Running
和 Slave_SQL_Running
都为 Yes
时才算成功!
测试#
省略…
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: