CentOS使用docker部署mysql5.7、可使用navicat连接mysql服务,以及主从同步配置
查找待拉取的镜像
mysql镜像地址:https://hub.docker.com/_/mysql?tab=tags
我使用的是5.3.37的版本:docker pull mysql:5.7.37
docker images
查看拉取得镜像
指定容器服务器挂载路径启动mysql(自命名名称,服务器路径会自动创建)
注意:同一镜像重复使用,需修改指定不同的默认端口
docker run -it \
--restart=always \
--name mysql_5.7 \
-v /usr/local/docker/mysql/cnf:/etc/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mysql/log:/var/log \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-p 13307:3307 \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7.37
若要自定义配置文件启动mysql,则先停止并删除上述命令启动的容器docker stop 容器id/容器名
,docker rm -f 容器id/容器名
,然后再在/usr/local/docker/mysql/cnf下创建my.cnf文件,根据需要配置,然后再使用上述命令启动。
[client]
port=3307
default-character-set=utf8mb4
[mysqld]
port=3307
#数据库字符
character-set-server=utf8mb4
#排序规则
collation-server=utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
#最大连接数
max_connections=150
#最大错误连接数
max_connect_errors=200
#MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中
back_log=80
#是否启用慢查询日志,1为启用,0为禁用
slow_query_log=1
#慢查询执行的秒数,必须达到此值可被记录
long_query_time=3
#慢查询日志
slow_query_log_file = /var/log/mysql-slow.log
#该参数代表binlog的过期时间,单位是天
expire_logs_days=15
查看mysql的启动情况
docker ps -a
若没有启动成功,使用命令查看启动日志并根据错误提示并解决
docker logs -f 容器id/容器名
启动成功则使用如下命令,进入容器终端
docker exec -it 容器id/容器名 bash
连接mysql
默认密码可查看日志获得,可能为空
mysql -uroot -proot
然后使用mysql数据库
use mysql;
修改root用户的密码(password自己修改)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
刷新权限
flush privileges;
双重退出到服务器终端;
quit;
exit;
navicat连接mysql
使用端口13307
连接出错:
1、防火墙打开情况下,查看端口是否开放或查看防火墙对容器是否拦截。
2、ECS控制台,网络与安全——》安全组配置规则——》入方向,开放端口。
MySQL主从同步设置
1、停止并删除启好的mysql容器
2、以不同端口启动两容器
docker run -it \
--restart=always \
--name mysql_master_3306 \
-v /usr/local/docker/mysql_master_3306/cnf:/etc/mysql \
-v /usr/local/docker/mysql_master_3306/data:/var/lib/mysql \
-v /usr/local/docker/mysql_master_3306/log:/var/log \
-v /usr/local/docker/mysql_master_3306/mysql-files:/var/lib/mysql-files \
-p 13306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7.37
docker run -it \
--restart=always \
--name mysql_slave_3307 \
-v /usr/local/docker/mysql_slave_3307/cnf:/etc/mysql \
-v /usr/local/docker/mysql_slave_3307/data:/var/lib/mysql \
-v /usr/local/docker/mysql_slave_3307/log:/var/log \
-v /usr/local/docker/mysql_slave_3307/mysql-files:/var/lib/mysql-files \
-p 13307:3307 \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7.37
3、修改master配置文件
[client]
port=3306
default-character-set=utf8mb4
[mysqld]
port=3306
#数据库字符
character-set-server=utf8mb4
#排序规则
collation-server=utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
#最大连接数
max_connections=150
#最大错误连接数
max_connect_errors=200
#MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中
back_log=80
#是否启用慢查询日志,1为启用,0为禁用
slow_query_log=1
#慢查询执行的秒数,必须达到此值可被记录
long_query_time=3
#慢查询日志
slow_query_log_file = /var/log/mysql-slow.log
#设置server_id , 同一局域网中需要唯一
server_id=101
#指定不需要同步的数据库名称
binlog-ignore-db=mysql
#开启二进制日志功能
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
1007: 数据库已存在,创建数据库失败
1008: 数据库不存在,删除数据库失败
1050: 数据表已存在,创建数据表失败
1051: 数据表不存在,删除数据表失败
1054: 字段不存在,或程序文件跟数据库有冲突
1060: 字段重复,导致无法插入
1061: 重复键名
1068: 定义了多个主键
1094: 位置线程ID
1146: 数据表缺失,请恢复数据库
1053: 复制过程中主服务器宕机
1062: 主键冲突 Duplicate entry '%s' for key %d修改slave配置文件
[client]
port=3307
default-character-set=utf8mb4
[mysqld]
port=3307
#数据库字符
character-set-server=utf8mb4
#排序规则
collation-server=utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
#最大连接数
max_connections=150
#最大错误连接数
max_connect_errors=200
#MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中
back_log=80
#是否启用慢查询日志,1为启用,0为禁用
slow_query_log=1
#慢查询执行的秒数,必须达到此值可被记录
long_query_time=3
#慢查询日志
slow_query_log_file = /var/log/mysql-slow.log
#设置server_id , 同一局域网中需要唯一
server_id=102
#指定不需要同步的数据库名称
binlog-ignore-db=mysql
# 开启二进制日志功能,以备slave作为其他数据库实例的master时使用
log-bin=mall-mysql-slave1-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
5、重启两容器
6、进入master容器并配置
docker exec -it mysql_master_3306 bash
mysql -uroot -p
输入密码:root
切换数据库,挨着输入并执行:
use mysql;
create user 'slave'@'%' identified by '123456';
grant replication slave on *.* to 'slave'@'%';
flush privileges;
查看master数据库状态,并记录file与position值:
show master status;
7、查看master数据库对应的容器ip地址:
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器id
或者进入master容器使用cat /etc/hosts
查看
8、进入slave容器并配置
docker exec -it mysql_slave_3307 bash
mysql -uroot -p
输入密码:root
change master to master_host='172.17.0.3',master_user='slave',master_password='123456',master_port=3306,master_log_file='mall-mysql-bin.000001',master_log_pos=154;
启动并查看状态,Slave_IO_Running以及Slave_SQL_Running都为Yes标识启动成功
start slave;
show slave status\G;
CentOS使用docker部署mysql5.7、可使用navicat连接mysql服务,以及主从同步配置相关推荐
- 基于 CentOS Mysql 安装与主从同步配置详解
CentOS Mysql 安装 Mysql (Master/Slave) 主从同步 1.为什么要使用主从同步 1.如果主服务器出现问题,可以快速切换到从服务器提供的服务 2.可以在从服务器上执行查询操 ...
- mysql5.5主从同步配置文件_Windows下的 mysql 5.5主从同步配置
环境说明: Master:127.0.0.1 3306 Slave:127.0.0.1 3307 MySQL 的 Master 配置: 配置my.ini: [mysqld] # The TCP/IP ...
- linux centos 7 docker下载mysql5.7
docker images(查看镜像,还没有mysql的镜像) docker pull mysql:5.7(下载mysql5.7镜像) 下载完之后 再查看镜像 docker imagers docke ...
- windows mysql主主配置_基于docker MySQL数据库主主同步配置(windows上)
安装docker部分 坑点 docker拉镜像速度过慢 点击docker图标,点击邮件看到setting,setting界面上点击docker engine,配置如图所示 还有两个备用的镜像地址 &q ...
- centos mysql 同步时间_centos:mysql主从同步配置(2018)
centos:mysql主从同步配置(2018) 主服务器:10.1.1.144; 从服务器:10.1.1.163; 配置过程 1.进入主服务器,停止主服务mysql服务: systemctl sto ...
- CentOS下MySQL主从同步配置
(转自)http://apps.hi.baidu.com/share/detail/5882847centos下MySQL主从同步配置 一.环境 主机: master操作系统:centos 5.3 I ...
- Docker实践(五)docker部署MySQL5.7
目录 1,安装 2,选择镜像 3,下载镜像. 4,准备部署 5,创建并启动 6,测试 使用docker容器部署mysql5.7 1,安装 没有docker,首先安装docker,参照Docker简单实 ...
- Docker部署MySQL5.7主从复制结构
目录 准备 基于bin-log文件位置的主从复制 基于事务的主从复制 Mysql复制可以将一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器). 默认情况下, ...
- Centos,docker部署服务,telnet端口不通
问题描述 近期在项目上使用docker部署服务时,服务无法被正常调用,服务端口telnet不通.宿主机ip可以ping通,宿主机上部署服务端口可以telnet通,宿主机可以telnet通docker服 ...
最新文章
- 关于lombok插件的使用,强大的简化代码工具
- 10 迭代器与生成器
- 整理:C++中sprintf()函数的使用详解
- 南阳理工计算机全国排名,全国工科实力最强的10所高校排名,
- Flsak爱家租房--个人信息
- python是后端语言还是前端语言_从前端到后台-语言选择
- 这个连“炒菜的油”都不放过的“吝啬”男人,却用“吝啬”创造了世界奇迹!...
- Java 替换字符串中的回车换行符的方法
- EditPlus-CN使用总结
- 响应式Web设计:HTML5和CSS3实战
- c语言十进制转ieee754代码,C#IEEE754到十进制(C# IEEE754 to decimal)
- 硬件学习笔记(器件篇)—— 电感(二)
- 建造者模式-JAVA代码实现
- vanilla js_用Vanilla js编写前端组件
- 通过cmd调用网易云音乐
- 在大型数据中心使用BGP进行路由(翻译自RFC7938)
- 英雄卡(输入计数)【标记思想】
- 计算机主板的选购技巧,电脑主板怎么选择?DIY装机之主板选购指南
- 冻肉进口报关注意事项及进口企业都应该具备哪些资质?
- 加拿大访问学者家属如何办理探亲签证?
热门文章
- 联阳IT976E GPIO读取温度传感器CT1720
- DWARF格式对于debug信息的支持
- 【服务器】树洞外链搭建图床操作系统
- mosquitto 服务器 硬件配置,MAC 下配置MQTT 服务器Mosquitto
- LIN ldf文件配置
- [agc 049E][凸性dp][小计数] Increment Decrement
- 一名程序猿的习惯养成记录手帐(六)
- 【公式推导】正规方程
- TMS320F28069的硬件I2C一直卡在查询 I2caRegs.I2CSTR.bit.XRDY
- Docker下梦织CMS的部署