安装docker
本文基于centos8.2自测7.5版本同样可用
sudo yum update(可选)复制
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2复制
设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo复制
安装docker
sudo yum install docker-ce复制
启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker复制
验证安装是否成功
docker version复制
安装portainer
可视化docker工具(可选)
docker pull portainer/portainer复制
docker run -d -p 9000:9000 --name=portainer --restart=always -v var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer复制
安装后 IP:9000访问。本地选择local设置密码即可
安装MySQL(主从)
拉镜像
docker pull mysql5.7复制
启动容器 -v 为本地服务器:容器内路径的映射 -e为环境变量
docker run -itd --name mysql-5.7 \
-v root/mysql/conf:/etc/mysql \
-v /root/mysql/logs:/var/log/mysql \
-v /root/mysql/data:/var/lib/mysql \
-p 3306:3306 -e MYSQL_ROOT_PASSWORD=asdf-123 \
-e TZ=Asia/Shanghai mysql:5.7复制
启动从库 因为本次为同一台公网机器,所以设置从库为3307
docker run -itd --name mysql-5.7slave \
-v /root/mysqlSlave/conf:/etc/mysql \
-v /root/mysqlSlave/logs:/var/log/mysql \
-v /root/mysqlSlave/data:/var/lib/mysql \
-p 3307:3306 -e MYSQL_ROOT_PASSWORD=asdf-123 \
-e TZ=Asia/Shanghai mysql:5.7复制
进入容器内部
docker exec -i -t mysql-5.7 /bin/bash复制
在主库容器内新建my.cnf,输入命令后,粘贴以下配置,CTRL+D即可保存退出
cd etc
cat >>my.cnf复制
#mysql master1 config
[mysqld]
server-id = 1 # 节点ID,确保唯一
# log config
log-bin = mysql-bin #开启mysql的binlog日志功能
sync_binlog = 1 #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
binlog_format = mixed #binlog日志格式,mysql默认采用statement,建议使用mixed
expire_logs_days = 7 #binlog过期清理时间
max_binlog_size = 100m #binlog每个日志文件大小
binlog_cache_size = 4m #binlog缓存大小
max_binlog_cache_size= 512m #最大binlog缓存大
binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行
auto-increment-offset = 1 # 自增值的偏移量
auto-increment-increment = 1 # 自增值的自增量
slave-skip-errors = all #跳过从库错误
#skip-name-resolve #mysql默认会反向解析DNS,对于访问者不会判断是hosts还是ip都会进行dns反向解析复制
exit 退出当前容器复制
重复以上步骤在从库新建my.cnf
[mysqld]
server-id = 2
log-bin=mysql-bin
relay-log = mysql-relay-bin
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%复制
sudo service docker restart 重启两个容器复制
用此命令获取从库IP
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-5.7slave复制
连接MySQL(主)master
CREATE USER repl_user IDENTIFIED BY 'repl_passwd';
grant replication slave on *.* to 'repl_user'@' 172.17.0.3' identified by 'repl_passwd';
# 从库的IP
FLUSH PRIVILEGES;
show master status;复制
获得File mysql-bin.000001 Position 3173
连接MySQL(从)slave
CHANGE MASTER TO
MASTER_HOST = '172.17.0.4',
MASTER_USER = 'repl_user',
MASTER_PASSWORD = 'repl_passwd',
MASTER_PORT = 3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=3173,
MASTER_RETRY_COUNT = 60,
MASTER_HEARTBEAT_PERIOD = 10000;
# MASTER_LOG_FILE='mysql-bin.000001',#与主库File 保持一致
# MASTER_LOG_POS=120 , #与主库Position 保持一致
start slave;
#注意:MySQL5.7之前为slave start命令复制
验证在slave库执行
show slave status;复制
主库File和position与从库一致,则证明主从同步
文章转载自青烟雀语,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
MySQL8.0统计信息总结
闫建(Rock Yan)
570次阅读
2025-03-17 16:04:03
MySQL生产实战优化(利用Index skip scan优化性能提升257倍)
chengang
389次阅读
2025-03-17 10:36:40
MySQL数据库当前和历史事务分析
听见风的声音
360次阅读
2025-04-01 08:47:17
墨天轮个人数说知识点合集
JiekeXu
342次阅读
2025-04-01 15:56:03
MySQL 生产实践-Update 二级索引导致的性能问题排查
chengang
333次阅读
2025-03-28 16:28:31
MySQL8.0直方图功能简介
Rock Yan
269次阅读
2025-03-21 15:30:53
MySQL 有没有类似 Oracle 的索引监控功能?
JiekeXu
252次阅读
2025-03-19 23:43:22
云和恩墨杨明翰:安全生产系列之MySQL高危操作
墨天轮编辑部
239次阅读
2025-03-27 16:45:26
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
235次阅读
2025-04-07 12:14:29
PG vs MySQL 执行计划解读的异同点
进击的CJR
158次阅读
2025-03-21 10:50:08