[MySQL] docker下安装使用mysql配置主从复制
拉取mysql的镜像
docker search mysql
docker pull mysql
通过镜像创建容器,这里先创建第一个容器作为master mysql
-v /etc/mysql:/etc/mysql/conf.d 表示目录共享,目录提前创建好,第二个容器要目录不一样
docker run -d --name one_mysql -v /etc/mysql:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
进入容器
docker exec -it one_mysql bash
宿主机的配置文件
/etc/mysql/mysql.cnf
[mysqld]
server-id = 1
log-bin = mysql-bin
进入容器后
show master status
查看下当前的状态,如果看到binlog日志是我们配置的文件名就说明我们配置成功了
创建第二个容器作为我们的slave mysql
docker run -d --name two_mysql -v /etc/mysql2:/etc/mysql/conf.d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
宿主机的配置文件
/etc/mysql2/mysql.cnf
[mysqld]
server-id = 2
进入容器看看变量变了没有,如果已经是我们配置的就说明配置文件是成功的
docker exec -it two_mysql bash
show variables like 'server_id';
开启主从复制
change master to master_host='172.17.0.3',master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=155;
start slave
show slave status
看到Slave_Io_Running:yes Slave_SQL_Running:yes 就可以了
修改密码的加密方式,因为默认的加密方式,主从复制的时候,从数据库连接不上
USE mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
docker inspect 容器ID 查看该容器的IP
相关文章
- JetBrains Rider for mac(跨平台.NET IDE集成开发) v2022.3.1激活版
- 交互周期表:网络中心度(Network Centrality)
- ECCV2022 | PCLossNet:不进行匹配的点云重建网络
- Redis
- SQLSERVER 的复合索引和包含索引到底有啥区别?
- SQLSERVER 的主键索引真的是物理有序吗?
- SQLSERVER 居然也能调 C# 代码 ?
- 再聊一下那 SQLSERVER 行不能跨页的事
- 聊一聊 SQLSERVER 的行不能跨页
- 一次SQL调优 聊一聊 SQLSERVER 数据页
- 记一次 .NET 某安全生产信息系统 CPU爆高分析
- 记一次 .NET 某工控MES程序 崩溃分析
- 玩好.NET高级调试,你也要会写点汇编
- 记一次 .NET 某工控软件 内存泄露分析
- 记一次 .NET 某电子厂OA系统 非托管内存泄露分析
- 聊一聊如何截获 C# 程序产生的日志
- .NET 7 的 AOT 到底能不能扛反编译?
- 记一次 .NET 某自动化采集软件 崩溃分析
- 从 WinDbg 角度理解 .NET7 的AOT玩法
- 记一次.NET某工控图片上传CPU爆高分析