[关闭]
@lgh-dev 2019-04-19T10:05:10.000000Z 字数 1593 阅读 1242

Centos7下Mysql5.7配置主从复制步骤

MySQL


MySQL配置读写分离信息

IP 服务ID 角色
120.78.139.204 204 master
106.13.65.208 208 slave

MySQL版本信息

5.7.25 主库和从库版本尽量保持一致

配置主库

1、修改my.cnf配置文件

一般mysql配置文件在目录/etc下,叫my.cnf (如果找不到的话也有可能在这些目录下:/etc/my.cnf,/etc/mysql/my.cnf,/usr/local/mysql/etc/my.cnf,~/.my.cnf)

在[mysqld]段下添加:

  1. #要给从库同步的库
  2. binlog-do-db=knowshare
  3. #不给从机同步的库(多个写多行)
  4. binlog-ignore-db=mysql
  5. binlog-ignore-db=information_schema
  6. binlog-ignore-db=performance_schema
  7. binlog-ignore-db=sys
  8. #自动清理 7 天前的log文件,可根据需要修改
  9. expire_logs_days=7
  10. # 启动二进制日志
  11. log-bin=mysql-bin
  12. # 服务器唯一ID,一般取IP最后一段
  13. server-id=204

重启mysql服务器

  1. systemctl restart mysqld #centos7以上版本

测试log-bin(二进制日志)是否开启如下图

此处输入图片的描述

建立账户并授权slave

  1. //分配文件从库复制权限给backup用户
  2. mysql> grant file,replication slave on *.* to 'backup'@'%' identified by '123456';
  3. #刷新权限
  4. mysql> flush privileges;

查询主服务器的状态

如果如上图所示,说明主库信息基本已经配置完毕

配置从库

拷贝数据

把主库的数据拷贝出来一份倒入到从库中,先保证主从库内容一致

修改my.cnf文件。
在[mysqld]段下添加:

  1. server-id=208
  2. #加上以下参数可以避免更新不及时,SLAVE 重启后导致的主从复制出错。
  3. read_only = 1
  4. master_info_repository=TABLE
  5. relay_log_info_repository=TABLE

在从机上设置主服务器关联

  1. # mysql -u root -p //登录mysql
  2. mysql> stop slave; //停止从库
  3. mysql> change master to
  4. > master_host = '120.78.139.204',
  5. > master_user='backup', #备份用户名
  6. > master_password='123qwe', #密码
  7. > master_log_file='mysql-bin.000003', #上面截图,且要与master的参数一致
  8. > master_log_pos = 1155; #上面截图,且要与master的参数一致
  9. mysql> start slave;

master_log_filemaster_log_pos 的值要和查看主库状态的内容要一致,一个指的是二进制文件,一个指的是二进制日志的位置

查看从库的状态

如果途中IO线程和SQL都是YES代表成功了,

测试主从复制

然后测试在主库数据库中修改或添加一条纪录,查看一下从库是否会同步即可

如果失败,可能是如下原因

可以先查看msyql的错误日志

  • 网络原因
  • 主从复制用户密码不对
  • 二进制日志pos不对

如果都不是以上的原因,那就得看你能不能连接上主库数据库

  1. [root@local ~] # mysql -u backup -h 120.78.139.204 -p

如果连不上,则极有可能是你的主服务器的3306端口没开,那就去吧防火墙规则改一下,我用的是阿里云服务器,所以直接就在控制台中,加了个3306端口的安全规则,重启ecs实例就可以了

如果都能测试成功,那么就没什么大问题了,Enjoy It!!

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注