Docker 环境 MySQL8 主从配置
2022/6/23 6:19:46
本文主要是介绍Docker 环境 MySQL8 主从配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一 准备工作
1.安装Docker
2.创建数据及配置存放目录
# 根据自己的习惯设定存放路径 # 创建主库数据存放目录 mkdir -p代表文件不存在即创建 mkdir -p /home/docker/mysql/master/data # 创建主库配置存放目录 mkdir -p /home/docker/mysql/master/conf # 创建从库1数据存放目录 mkdir -p /home/docker/mysql/slave1/data # 创建从库1配置存放目录 mkdir -p /home/docker/mysql/slave1/conf
3.要安装mysql8,必须在之前创建的conf文件夹中先创建my.cnf作为mysql8的配置文件
master库和slave库配置文件my.cnf是几乎一样的,只要server-id不一致即可
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql secure-file-priv= NULL # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 port = 3307 # 主库的端口可以使用默认3306,从库的端口必须和主库不一致 # 服务器唯一ID,默认是1, 要和slave库不同 server-id=1 # 启用二进制日志 log-bin=binlog # 从库追踪主库的日志文件名开头,有些数据库是mysql-bin,有些是binlog,具体可以在主库mysql环境下输入mysql> show master status查看 # 最大连接数 max_connections=10000 # 设置默认时区, # default-time_zone='+8:00' # 0:区分大小写 # 1:不区分大小写 # lower_case_table_names=1
4.docker中安装mysql8
主库命令
sudo docker run --name mysql_master \ -d --network=host \ -v /home/docker/mysql/master/data:/var/lib/mysql \ -v /home/docker/mysql/master/conf/my.cnf:/etc/mysql/my.cnf \ -e MYSQL_ROOT_PASSWORD=111111 \ mysql:8 注释: 第一行:docker启动后的名字 第二行:docker直接使用服务器的网络端口映射 第三行:docker里面的数据映射到服务器本地的路径 第四行:docker里面加载使用的cnf文件映射到服务器本地的路径 第五行:设置docker中mysql的root初始密码 第六行:docker使用的镜像:版本
从库命令
sudo docker run --name mysql_slave1 \ -d --network=host \ -v /home/docker/mysql/slave1/data:/var/lib/mysql \ -v /home/docker/mysql/slave1/conf/my.cnf:/etc/mysql/my.cnf \ -e MYSQL_ROOT_PASSWORD=111111 \ mysql:8 注释: 第一行:docker启动后的名字 第二行:docker直接使用服务器的网络端口映射 第三行:docker里面的数据映射到服务器本地的路径 第四行:docker里面加载使用的cnf文件映射到服务器本地的路径 第五行:设置docker中mysql的root初始密码 第六行:docker使用的镜像:版本
5.测试远程主从数据库连接状况
进入docker命令:使用docker名称或者id
docker exec -it mysql_master /bin/bash
进入docker后试着进入mysql8,部分数据库可能会出现无法登录的状态,这个需要在上述的mysql配置文件my.cnf 文件中,在[mysqld] ,在其后面添加 skip-grant-tables
同理,从属数据库也是同样的方法测试.
别忘了加入skip-grant-tables后进入mysql重新设置密码后,再flush privileges,之后从my.cnf中再删掉这行skip-grant-tables
6.在主库创建从库访问主库的账户
create user 'myslave'@'%' identified by '111111'; grant replication slave on *.* to 'myslave'@'%'; # *.*代表所有的数据库
7.查看master机器的状态
SHOW MASTER STATUS
File栏下的binlog.000103就是从库要追踪的主库的日志文件
position栏的数字就是追踪的起始位置
8.从库设置master信息
进入从库的docker,再进入mysql环境:
CHANGE MASTER TO MASTER_HOST='192.168.1.175', # 主库的IP地址 MASTER_USER='mysalve', # 主库设置的从库访问用户名 MASTER_PASSWORD='111111', # 密码 MASTER_LOG_FILE='binlog.000103', MASTER_LOG_POS=28862;
9.开始同步
# 开始同步 start slave; # 查看同步状态 show slave status \G;
看到两个yes状态就是正常运行状态.
注意:在主库数据在从库进行数据备份,有冷备份和热备份两种,冷备份就是先要锁定主库的数据库,再导出,再导入到从库数据库,这样两个数据库可以保证是在同一个起点,别忘了解锁主库数据,之后主库和从库的数据就完全一致了.
这篇关于Docker 环境 MySQL8 主从配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程