一、安装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主从集群相关推荐

  1. Linux使用Docker安装Nacos并配置MySQL数据源,将Springboot的配置文件部署到Nacos

    Linux使用Docker安装Nacos并配置MySQL数据源,将Springboot的配置文件部署到Nacos 前言 一.Docker中安装配置Nacos 安装Docker 拉取Nacos镜像 启动 ...

  2. docker mysql5.7 主从_使用Docker部署MySQL 5.78.0主从集群的方法步骤

    > 部署 MySQL 5.7 集群 master & slave (仅测试用) 镜像版本 5.7 1.创建 overlay 网络 docker network create --driv ...

  3. ZK安装、ZK配置、ZK集群部署踩过的大坑

    天天采坑.来来咱们一起来填zookeeper的坑呀!! 解决坑一定要注意zk根目录下的神器,那就是logs目录下的日志, 第一坑:错误: 找不到或无法加载主类 org.apache.zookeeper ...

  4. docker 搭建mysql 连接不上_docker搭建MySQL主从集群

    关于MySQL主从模式,如果我们直接在本机上搭建的话,是没法搭建的,只能借助于虚拟机,但有的时候我们又需要搭建一个主从集群,以便于进行一些功能性的测试.这个时候我们就可以尝试使用docker,借助于d ...

  5. MySQL主从集群原理+实战

    目录如下 MySQL主从集群原理+实战 背景 随着公司业务的发展,对数据库的要求越来越高,以前的单机MySQL肯定是玩不转了,亟需升级成MySQL集群,这是一个公司在业务发展时不得不面临的问题 就单机 ...

  6. k8s(七)—statefullset部署mysql主从集群

    1 使用statefullset部署mysql主从集群 mysql-0是master mysql-1和mysql-2是两个备份 当mysql写的时候,找headless service中的mysql- ...

  7. MySQL 数据库主从集群搭建

    文章目录 1 准备工作 2 配置主数据库 3 配置从库 4 从库设置只读用户 5 推荐参考资料 1 准备工作 1 选择一个服务器当做主服务器,将服务器上需要的数据进行备份 2 安装从库的 MySQL, ...

  8. mysql gtid 集群_Docker搭建MySQL主从集群,基于GTID

    写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-do ...

  9. Ubuntu20.04安装MySQL及配置MySQL workbench

    文章目录 前言 一.MySQL安装与配置 1. 安装MySQL 2. 配置MySQL 二.配置MySQL远程访问 三.安装配置MySQL workbench 1. 安装MySQL workbench ...

  10. 虚拟机安装ubuntu及配置mysql进行远程访问详细过程

    虚拟机安装ubuntu及配置mysql进行远程访问详细过程 1.虚拟机准备及安装 选择虚拟机Oracle VM VirtualBox,下载地址:https://www.virtualbox.org/w ...

最新文章

  1. 35岁危机可能是真的!调查显示在领英上年龄越大越难找工作,得贴年轻头像才行...
  2. C#多线程---Task实现异步
  3. JAVA 邮件发送工具类
  4. 安装Windows digits问题列表
  5. Html Dom 的nodetype解析 转自“sweting”
  6. Request对象及其API应用实操
  7. 算法题解:连续子数组的最大和及其下标
  8. Android硬件访问服务框架思想初识
  9. Apache Cassandra static column 介绍与实战
  10. 使用TSC打印机打印条码 (1)
  11. Java并发编程面试题合集
  12. jquery利用ajax请求数据渲染二级菜单
  13. 基于Python,从零开始,裸写一套期权定价程序
  14. thingsboard 编译及分析
  15. 怎么借书(分配资源问题)(SWUST OJ1287)
  16. suricata 命令
  17. 区块链在游戏产业掀起狂潮
  18. js Proxy 从入门到废掉的整个过程
  19. Mybatis—动态SQL语句与逆向工程
  20. IKBC C87 usb线序

热门文章

  1. 30 个高质量的知识星球推荐给你
  2. 请求微信接口出现的errcode
  3. Dax动态计算最后连续缺勤天数
  4. 服务器有修改权限但无法修改,win10更改权限提示无法枚举容器中的对象怎么办_网站服务器运行维护...
  5. Windows系统10中“无法枚举容器中的对象 访问被拒绝”解决方案
  6. 18个前端设计在线配色调色网站
  7. 网站建设建站对企业有什么好处和作用?
  8. N个数的所有出栈顺序
  9. Newnode‘s NOI 模拟赛 第二题 (单调dp)
  10. Hex hsl 转换 php,HEX和RGB和HSL颜色数值在线转换工具