[MySQL] docker下安装使用mysql配置主从复制

Posted 陶士涵的菜地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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

以上是关于[MySQL] docker下安装使用mysql配置主从复制的主要内容,如果未能解决你的问题,请参考以下文章

docker centos7 下 使用docker 安装mysql

学姐今天竟然问我Linux中如何使用docker安装mysql

Centos 7.8下使用 Docker 安装 MySQL 8

docker 下安装 mysql 及登录

记录下安装docker和docker下安装mysql的过程

Ubuntu下Docker安装Mysql