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;
相关推荐
Decay__16 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
Decay__21 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
杨浦老苏1 天前
把项目管理搬回自己服务器:Windshift部署与避坑
docker·项目管理·群晖
木雷坞1 天前
Baserow Docker部署:导入设备借用CSV,再用表单新增登记
运维·docker·容器
wefg11 天前
【Docker】基本指令
运维·docker·容器
后台模板学习1 天前
MongoDB 与 MySQL 在 IM 即时聊天场景中该
数据库·mysql·mongodb
IT大白鼠1 天前
渗透测试实战从靶场搭建到渗透流程——第 8 篇 · 服务型靶标(上):MySQL 双版本写文件链
数据库·mysql·渗透测试
少年的范儿1 天前
Windows 安装 MySQL 8.4 教程(ZIP 解压版):配置 my.ini、初始化数据库与启动服务
数据库·windows·mysql
牛马工作号1 天前
Copyparty 轻量文件共享:Docker Compose 部署、权限与多协议使用全指南
运维·docker·容器
神仙别闹1 天前
基于Python+MySQL实现(Web)个人博客系统
python·mysql·php