A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

海星翻筋斗

黑马粉丝团

  • 黑马币:14

  • 帖子:2

  • 精华:0

本帖最后由 海星翻筋斗 于 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_DBExecuted_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 证明主从服务期关联成功。



















0 个回复

您需要登录后才可以回帖 登录 | 加入黑马