本帖最后由 海星翻筋斗 于 2022-1-24 16:56 编辑
1.0 MySQL单机
步骤一:拉取镜像
[Shell] 纯文本查看 复制代码 docker pull mysql:5.7.24
步骤二:启动容器
[Shell] 纯文本查看 复制代码 docker run \
-p 3306:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-v $PWD/my_master.cnf:/etc/mysql/conf.d/my_master.cnf \
-v $PWD/logs:/var/lib/mysql/logs \
-v $PWD/data:/var/lib/mysql \
-d \
mysql:5.7.24
参数说明:
- -p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
- -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
- -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
- -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
- -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
2.0 MySQL一主多从
2.1 主机启动
步骤一:创建目录并进入目录
[Shell] 纯文本查看 复制代码 mkdir -p /home/docker/mysql/master
cd /home/docker/mysql/master
步骤二:创建主机配置文件
[Shell] 纯文本查看 复制代码 vim my_master.cnf
配置文件内容如下
- log-bin: [必须]启用二进制日志
- server-id [必须]服务器唯一ID(唯一即可)
[Shell] 纯文本查看 复制代码 [mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
log-bin=mysql-bin
server-id=200
步骤三:启动容器
[Shell] 纯文本查看 复制代码 docker run \
-p 3306:3306 \
--name mysql_master \
-e MYSQL_ROOT_PASSWORD=123456 \
-v $PWD/my_master.cnf:/etc/mysql/conf.d/my_master.cnf \
-v $PWD/logs:/var/lib/mysql/logs \
-v $PWD/data:/var/lib/mysql \
-d \
mysql:5.7.24
2.2 从机启动步骤一:创建并进入目录
[Shell] 纯文本查看 复制代码 mkdir -p /home/docker/mysql/slave01
cd /home/docker/mysql/slave01
步骤二:创建从机配置文件
[Shell] 纯文本查看 复制代码 vim my_slave01.cnf
配置文件内容如下 - server-id [必须]服务器唯一ID(唯一即可)
[Shell] 纯文本查看 复制代码 [mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=201
步骤三:启动容器
[Shell] 纯文本查看 复制代码 docker run \
-p 3307:3306 \
--name mysql_slave01 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v $PWD/my_slave01.cnf:/etc/mysql/conf.d/my_slave01.cnf \
-v $PWD/logs:/var/lib/mysql/logs \
-v $PWD/data:/var/lib/mysql \
-d \
mysql:5.7.24
2.3 主机配置步骤一:
登录mysql,并执行如下指令,创建用户并授权:以下命令创建了一个 master 用户,密码 123456 用于进行主从复制;
[SQL] 纯文本查看 复制代码 GRANT REPLICATION SLAVE ON *.* to 'master'@'%' identified by '123456';
步骤二:
执行下面SQL,记录下结果中**File**和**Position**的值
[SQL] 纯文本查看 复制代码 show master status;
得到如下结果
File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | mysql-bin.000001 | 154 | | | |
2.4 从机配置
步骤一:登录mysql,设置与主机进行连接
[SQL] 纯文本查看 复制代码 change master to master_host='127.0.0.1',master_port=3306,master_user='master',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;
start slave;
步骤二:查看从机状态
[SQL] 纯文本查看 复制代码 show slave status;
看到 slave_io_running 和 slave_sql_running 都是 yes 证明主从服务期关联成功。
|