docker安装mysql并配置mysql主从集群
一、安装docker
1.1 安装之前卸载原有的环境
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
1.2 简化安装并安装数据存储驱动包
yum install -y yum-utils device-mapper-persistent-data lvm2
1.3配置阿里云镜像地址
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.4 yum选择快的安装源
yum makecache fast
1.5 安装docker开源社区版
yum -y install docker-ce
1.6 启动docker
service docker start
1.7 查看docker版本信息
docker version
1.8 开机启动docker
systemctl enable docker
1.9修改阿里云加速器来下载资源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://j14v483r.mirrors.aliyuncs.com"]
}
EOFsudo systemctl daemon-reload
sudo systemctl restart docker
二、docker安装mysql
2.1 拉取mysql镜像
docker pull mysql
2.2 查看镜像
docker images
2.3 启动容器
docker run \--restart=always \--privileged=true \-p 3306:3306 \--name mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:latest \--default_authentication_plugin=mysql_native_password \--character-set-server=utf8mb4 \--collation-server=utf8mb4_general_ci
2.4 创建挂载目录
mkdir -p /mydata/mysql/{conf,logs,data}
2.5 复制容器配置文件到挂载目录
docker cp mysql: /etc/mysql/my.cnf /mydata/mysql/conf/
2.6 销毁容器
docker rm -f 容器ID
2.7 挂载方式启动容器
docker run \--privileged=true \--restart=always \-v /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/logs:/var/log/mysql \--privileged=true \-p 3306:3306 \--name mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:latest \--default_authentication_plugin=mysql_native_password \--character-set-server=utf8 \--collation-server=utf8_general_ci
docker配置mysql主从复制
3.1 安装mysql
docker pull mysql
3.2 创建主从挂载目录
主:mkdir -p /mydata/mysql/mysql-master/{conf,logs,data}
从:mkdir -p /mydata/mysql/mysql-slave/{conf,logs,data}
3.3启动主从容器 (注:将2.5copy出的my.cnf复制到主从conf目录下)
3.3.1启动主容器
docker run \--privileged=true \--restart=always \-v /mydata/mysql/mysql-master/conf/my.cnf:/etc/mysql/my.cnf \-v /mydata/mysql/mysql-master/data:/var/lib/mysql \-v /mydata/mysql/mysql-master/logs:/var/log/mysql \--privileged=true \-p 3306:3306 \--name mysql-master \-e MYSQL_ROOT_PASSWORD=root \-d mysql:latest \--default_authentication_plugin=mysql_native_password \--character-set-server=utf8 \--collation-server=utf8_general_ci
3.3.2启动从容器
docker run \--privileged=true \--restart=always \-v /mydata/mysql/mysql-slave/conf/my.cnf:/etc/mysql/my.cnf \-v /mydata/mysql/mysql-slave/data:/var/lib/mysql \-v /mydata/mysql/mysql-slave/logs:/var/log/mysql \--privileged=true \-p 3307:3306 \--name mysql-slave \-e MYSQL_ROOT_PASSWORD=root \-d mysql:latest \--default_authentication_plugin=mysql_native_password \--character-set-server=utf8 \--collation-server=utf8_general_ci
3.4 修改主从my.cnf配置文件
3.4.1 修改主my.cnf
# vim /mydata/mysql/mysql-master/conf/my.cnf[client]
default-character-set=utf8[mysql]
default-character-set=utf8[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolveserver_id=1
log-bin=mysql-bin
read-only=0replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
3.4.2 修改从my.cnf
# vim /mydata/mysql/mysql-slave/conf/my.cnf[client]
default-character-set=utf8[mysql]
default-character-set=utf8[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolveserver_id=2
log-bin=mysql-bin
read-only=1replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
server_id:唯一标识,在主从中需唯一
log-bin:开启二进制日志功能
read-only:0为读写,1为只读
replicate-ignore-db:不同步的数据库,一般是Mysql自带的数据库就不同步
binlog-do-db:配置要同步的数据库,不配置则全同步
3.4.3 重启主从容器
重启主容器:docker restart mysql-master
重启从容器:docker restart mysql-slave
3.5 进入mysql主容器并配置从库
3.5.1 进入主mysql
docker exec -it mysql-master bash
mysql -uroot -p '你的密码'
3.5.2 配置从库,同步数据
create user 'slave'@'%' identified by '123456';
grant replication slave,replication client on *.* to 'slave'@'%';
flush privileges;刷新
3.5.3 查看master状态
show master status;
File和Position字段的值后面将会用到
3.6 进入如mysql从容器并配置
3.6.1 查看master地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id
3.6.2 进入从mysql
docker exec -it mysql-slave bash
mysql -uroot -p '你的密码'
3.6.3 执行命令
change master to master_host='172.17.0.2',master_user='slave',
master_password='123456',master_port=3306,
master_log_file='mysql-bin.000001',
master_log_pos=171314,master_connect_retry=10,
get_master_public_key=1;
master_host:Master的地址,是容器的对立IP
master_port:Master的端口号,是容器的端口号;
master_user:用于数据同步的用户;
master_password:用于同步用户的密码;
master_log_file:指定Slave从哪个日志文件开始复制数据,即上文中提到的File字段值;
master_log_pos:从哪个Position开始读,即上文中提到的Position字段的值;
master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒;
get_master_public_key=1:mysql8.0以上需要使用RSA加密来传输密码
3.6.4 开启主从复制
start slave;
3.6.4 查看主从同步状态
show slave status \G;
都为YES则配置成功
不要使用super用户操作从库否则从库read-only=1不起作用
docker安装mysql并配置mysql主从集群相关推荐
- Linux使用Docker安装Nacos并配置MySQL数据源,将Springboot的配置文件部署到Nacos
Linux使用Docker安装Nacos并配置MySQL数据源,将Springboot的配置文件部署到Nacos 前言 一.Docker中安装配置Nacos 安装Docker 拉取Nacos镜像 启动 ...
- docker mysql5.7 主从_使用Docker部署MySQL 5.78.0主从集群的方法步骤
> 部署 MySQL 5.7 集群 master & slave (仅测试用) 镜像版本 5.7 1.创建 overlay 网络 docker network create --driv ...
- ZK安装、ZK配置、ZK集群部署踩过的大坑
天天采坑.来来咱们一起来填zookeeper的坑呀!! 解决坑一定要注意zk根目录下的神器,那就是logs目录下的日志, 第一坑:错误: 找不到或无法加载主类 org.apache.zookeeper ...
- docker 搭建mysql 连接不上_docker搭建MySQL主从集群
关于MySQL主从模式,如果我们直接在本机上搭建的话,是没法搭建的,只能借助于虚拟机,但有的时候我们又需要搭建一个主从集群,以便于进行一些功能性的测试.这个时候我们就可以尝试使用docker,借助于d ...
- MySQL主从集群原理+实战
目录如下 MySQL主从集群原理+实战 背景 随着公司业务的发展,对数据库的要求越来越高,以前的单机MySQL肯定是玩不转了,亟需升级成MySQL集群,这是一个公司在业务发展时不得不面临的问题 就单机 ...
- k8s(七)—statefullset部署mysql主从集群
1 使用statefullset部署mysql主从集群 mysql-0是master mysql-1和mysql-2是两个备份 当mysql写的时候,找headless service中的mysql- ...
- MySQL 数据库主从集群搭建
文章目录 1 准备工作 2 配置主数据库 3 配置从库 4 从库设置只读用户 5 推荐参考资料 1 准备工作 1 选择一个服务器当做主服务器,将服务器上需要的数据进行备份 2 安装从库的 MySQL, ...
- mysql gtid 集群_Docker搭建MySQL主从集群,基于GTID
写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-do ...
- Ubuntu20.04安装MySQL及配置MySQL workbench
文章目录 前言 一.MySQL安装与配置 1. 安装MySQL 2. 配置MySQL 二.配置MySQL远程访问 三.安装配置MySQL workbench 1. 安装MySQL workbench ...
- 虚拟机安装ubuntu及配置mysql进行远程访问详细过程
虚拟机安装ubuntu及配置mysql进行远程访问详细过程 1.虚拟机准备及安装 选择虚拟机Oracle VM VirtualBox,下载地址:https://www.virtualbox.org/w ...
最新文章
- 35岁危机可能是真的!调查显示在领英上年龄越大越难找工作,得贴年轻头像才行...
- C#多线程---Task实现异步
- JAVA 邮件发送工具类
- 安装Windows digits问题列表
- Html Dom 的nodetype解析 转自“sweting”
- Request对象及其API应用实操
- 算法题解:连续子数组的最大和及其下标
- Android硬件访问服务框架思想初识
- Apache Cassandra static column 介绍与实战
- 使用TSC打印机打印条码 (1)
- Java并发编程面试题合集
- jquery利用ajax请求数据渲染二级菜单
- 基于Python,从零开始,裸写一套期权定价程序
- thingsboard 编译及分析
- 怎么借书(分配资源问题)(SWUST OJ1287)
- suricata 命令
- 区块链在游戏产业掀起狂潮
- js Proxy 从入门到废掉的整个过程
- Mybatis—动态SQL语句与逆向工程
- IKBC C87 usb线序
热门文章
- 30 个高质量的知识星球推荐给你
- 请求微信接口出现的errcode
- Dax动态计算最后连续缺勤天数
- 服务器有修改权限但无法修改,win10更改权限提示无法枚举容器中的对象怎么办_网站服务器运行维护...
- Windows系统10中“无法枚举容器中的对象 访问被拒绝”解决方案
- 18个前端设计在线配色调色网站
- 网站建设建站对企业有什么好处和作用?
- N个数的所有出栈顺序
- Newnode‘s NOI 模拟赛 第二题 (单调dp)
- Hex hsl 转换 php,HEX和RGB和HSL颜色数值在线转换工具