MySql教程

mysql主从同步(5.7)

本文主要是介绍mysql主从同步(5.7),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、环境准备

1.1 使用docker容器

准备两个mysql的docker容器,并将对应的配置文件映射到主机目录中(或者不做映射,直接进入容器进行修改)。

1.2 使用实体机或虚拟机

直接准备两台虚拟机或者实体机,安装上mysql数据库

二、主从同步

2.1 配置主服务器

2.1.1 修改主服务器mysql配置文件(my.cnf), 添加一下内容

[mysqld]
## 同一局域网中要注意唯一
server-id=1
## 开启二进制日志文件功能,可以自定义名称(关键)
log-bin=mysql-bin

2.1.2 重启mysql

2.1.2.1 docker容器

  • 进入docker容器
    docker exec -it mysql /bin/bash
  • 执行命令
    service mysql restart
  • 退出容器
  • 重启容器
    docker restart mysql

2.1.2.2 实体机或者虚拟机安装

service restart mysqld

2.1.3 查看 skip_networking 状态

确保在主服务器上的 skip_networking 选项处于 OFF 关闭状态,这是默认值。
如果是启用的,则从数据库服务与主数据库通信,并且复制失败。

    ## 登录
    mysql:mysql -u root -p "密码"
    ## 查看状态
    show variables like '%skip_networking%';

2.1.4 创建用于复制的用户

  CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
  GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

2.2 配置从服务器

2.2.1修改从服务器mysql配置文件(my.cnf),添加一下内容

  [mysqld]
  server-id=2

2.2.2 重启mysql(和上面一致)

2.2.3 配置连接主数据库的相关信息

在从数据库服务器配置连接到主数据服务器的相关信息

    ## 登录到从数据库
    mysql -u root -p "密码"
    ## 执行
    ## xxx.xxx.xxx.xxx 主数据库ip地址,分为两种情况
    ## 如果是同一台服务器上的两个docker容器,则使用 docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称/容器ID;
    mysql > **CHANGE MASTER TO MASTER_HOST='XXX.XXX.XXX.XXX',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='password';**
    ## 启动从服务器数据库同步线程
    mysql > start slave;

2.2.4 查看同步状态

  show slave status \G; 

2.3 测试

在主服务器数据库,创建一个数据库,发现从服务器数据库中同步新建的相同的数据库,就成功。

2.4 其他

如果还需要配置多余的从服务器数据库,可以遵循上面的配置,添加一个配置就行。新建的从服务器数据库,会自动保存主服务器数据库之前的数据。

这篇关于mysql主从同步(5.7)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!