docker安装mysql

安装mysql

复制代码
docker pull mysql:8.0.31

单机启动:

复制代码
docker run -itd --name mysql1 -p 3305:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.31 --lower_case_table_names=1

单机指定配置文件启动:

bash 复制代码
docker run \ 
--name mysql-8 \ 
-d \ 
-p 3306:3306 \ 
--restart unless-stopped \ 
-v /home/mysql/log:/var/log/mysql \ 
-v /home/mysql/data:/var/lib/mysql \ 
-v /home/mysql/conf:/etc/mysql/conf.d \ 
-e TZ=Asia/Shanghai \ 
-e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.31

主从启动:

创建mysql配置文件:my.cnf

主库配置:

XML 复制代码
[client]
## 默认编码格式
default-character-set=utf8mb4
[mysqld]
## 设置server-id,同一局域网中需要唯一 
server-id=101
## 设置编码格式
character-set-server=utf8mb4
## 允许最大连接数
max_connections=2000
## 是否区分表名大小写 0区分 1不区分
lower_case_table_names=1
## 指定不需要同步的数据库名称 
binlog-ignore-db=mysql,information_schema,performance_schema,sys
## 开启二进制日志功能 
log-bin=mall-mysql-bin
## 设置二进制日志使用内存大小(事务) 
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row) 
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,表示不自动清理。 
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。 
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致 
slave_skip_errors=1062

## 通用日志
general_log=ON
log_output=FILE,TABLE

## 慢查询日志
slow_query_log=ON
## 超过1秒的sql记录
long_query_time=1

主库启动:

bash 复制代码
docker run -itd \
--name mysql-master \
-p 3306:3306 \
--restart unless-stopped \
-v /home/mysql-master/log:/var/log/mysql \
-v /home/mysql-master/data:/var/lib/mysql \
-v /home/mysql-master/conf:/etc/mysql/conf.d \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0.31

创建备份账号:

sql 复制代码
CREATE USER 'masterSlave'@'%' IDENTIFIED WITH mysql_native_password BY 'ms123456';
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'masterSlave'@'%';
FLUSH PRIVILEGES;

从库配置:

复制代码
## 默认编码格式
[client]
default-character-set=utf8mb4
[mysqld]
## 设置server-id,同一局域网中需要唯一 
server-id=102
## 设置编码格式
character-set-server=utf8mb4
## 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
## 允许最大连接数
max_connections=2000
## 指定不需要同步的数据库名称 
binlog-ignore-db=mysql,information_schema,performance_schema,sys
## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用 
log-bin=mall-mysql-slave-bin
## 设置二进制日志使用内存大小(事务) 
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row) 
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,表示不自动清理。 
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。 
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致 
slave_skip_errors=1062
## relay_log配置中继日志 
relay_log=mall-mysql-relay-bin
## log_slave_updates表示slave将复制事件写进自己的二进制日志 
log_slave_updates=1
## slave设置为只读(具有super权限的用户除外) 
read_only=1

## 通用日志
general_log=ON
log_output=FILE,TABLE

## 慢查询日志
slow_query_log=ON
## 超过1秒的sql记录
long_query_time=1

从库1启动:

XML 复制代码
docker run -itd \
--name mysql-slave1 \
-p 3307:3306 \
--restart unless-stopped \
-v /home/mysql-slave1/log:/var/log/mysql \
-v /home/mysql-slave1/data:/var/lib/mysql \
-v /home/mysql-slave1/conf:/etc/mysql/conf.d \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0.31

从库2启动:

XML 复制代码
docker run -itd \
--name mysql-slave2 \
-p 3308:3306 \
--restart unless-stopped \
-v /home/mysql-slave2/log:/var/log/mysql \
-v /home/mysql-slave2/data:/var/lib/mysql \
-v /home/mysql-slave2/conf:/etc/mysql/conf.d \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0.31

当前数据库被当做slave时有用

XML 复制代码
replicate-do-db
replicate-ignore-db

查看bin-log文件名和位置

sql 复制代码
show variables like 'log_%';
sql 复制代码
SHOW MASTER STATUS;

执行sql:

sql 复制代码
change master to master_host='172.17.222.108',master_user='masterSlave',master_password='ms123456',master_port=3306,master_log_file='mall-mysql-bin.000003',master_log_pos=157,master_connect_retry=30;

开启从库:

sql 复制代码
start slave;
show slave status;
相关推荐
bukeyiwanshui5 分钟前
20260414 正则表达式及shell三剑客
数据库·mysql·正则表达式
Trouvaille ~30 分钟前
【MySQL篇】内外连接:多表关联的完整指南
android·数据库·mysql·面试·后端开发·dql·内外连接
说实话起个名字真难啊30 分钟前
Docker 入门之overlay网络
网络·docker·容器
刘~浪地球1 小时前
云原生与容器--Docker 容器化最佳实践
docker·云原生·容器
蓝天白云下遛狗1 小时前
关于多网卡情况下docker内部网络通讯研究
运维·docker·容器
富士康质检员张全蛋1 小时前
安装完成Docker之后配置修改相关的内核参数
docker·容器
geovindu1 小时前
go: Model,Interface,DAL ,Factory,BLL using mysql
开发语言·mysql·设计模式·golang·软件构建
虞十三1 小时前
AtomGit 开源入门全攻略:环境搭建 + Git/Docker 实操 + 新手避坑(全平台版)
git·docker·容器
梦想与想象-广州大智汇1 小时前
MySQL 同步数据到 ClickHouse 方案对比分析
数据库·mysql·clickhouse
李李李li1 小时前
linux x86 离线安装docker 27.5.0
linux·docker·eureka