当前位置:Gxlcms > 数据库问题 > MySQL5.7 主从复制配置

MySQL5.7 主从复制配置

时间:2021-07-01 10:21:17 帮助过:15人阅读

.128.1(master) #打开日志 log_bin=mysql-bin #这个id不要与从数据库id一样,改id一般取当前服务器ip地址最后一位 server_id=1 binlog-do-db=cpa #要给从机同步的库 binlog-ignore-db=mysql #不要给从机同步的库 #自动清理1天前的log文件 expire_logs_days=1 ## 192.168.128.3(slave) log_bin=mysql-bin server_id=3

重启主从 MySQL

server_id 必须唯一。

 

四、主从复制

 

1.master创建授权用户:
192.168.128.1(master)

## 创建 test 用户,指定该用户只能在主库 192.168.128.3 上使用 MyPass1! 密码登录
mysql> create user test@192.168.128.3 identified by MyPass1!;

## 为 test 用户赋予 REPLICATION SLAVE 权限。
mysql> grant replication slave on *.* to test@192.168.128.3;

## 查看用户
mysql> select user,host from mysql.user;

## 查看 master 状态
mysql> show master status;

技术分享图片


这里的 mysql-bin.000001和 Position 值 slave 配置时需要用到。

2.将 master 中现有的数据信息导出

$ mysqldump -u root -p --all-databases --master-data > all.sql

3.将 all.sql 发送到 slave 服务器 tmp 目录下:

 

$ scp all.sql root@192.168.78.130:/tmp

4.slave 导入 master 数据,使 master-slave 数据保持一致

 

$ mysql -uroot -p < all.sql

注:2,3,4步主要作用是使主从数据库的数据保持一致,这里如果不会使用命令导出导入sql文件的话,可以借助工具实现,如Navicat

 

5.使 slave 与 master 建立连接,从而同步:

# 在slave上操作
mysql> change master to
    -> master_host=192.168.128.1,
    -> master_user=test,
    -> master_password=MyPass1!,
    -> master_log_file=mysql-bin.000001,
    -> master_log_pos=1244;
    
mysql> start slave;

mysql> show slave status \G

技术分享图片

  • master_log_file 和 master_log_pos值为主库上面执行show master status得到

  • 如果 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes,说明配置成功

  • 如果其中一项不为 Yes,查看 Last_IO_Errno 错误码和错误信息,或者查看 MySQL 日志信息并查找对应问题

五、主从配置检验

 master 插入一条数据,slave查看是否成功,

 master 删除一条数据,slave查看是否成功,

技术分享图片

MySQL5.7 主从复制配置

标签:color   状态   版本   tps   准备工作   一个   href   src   logs   

人气教程排行