centos7.6下使用docker搭建主从数据库

 

环境信息

操作系统CentOS7.6 x64
Docker版本1.13.1

 安装docker

使用yum安装docker

yum install -y docker

查看是否安装docker

yum list installed | grep docker

安装成功如图

 启动docker

systemctl start docker

查看docker是否启动成功

systemctl status docker

成功如图

docker安装mysql 

拉取mysql镜像,可以使用docker pull mysql:latest获取最新mysql镜像 

docker pull mysql:5.7

查看镜像是否拉取成功

docker images

 创建主数据库

docker run --name mysql-master -p 3337:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

 创建从数据库

docker run --name mysql-slave -p 3338:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

查看dcoker容器

docker ps -a

 

配置主数据库

进入master容器

docker exec -it mysql-master /bin/bash 

登录mysql

mysql -u root -p123456

修改root权限,可以通过任何客户端连接

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

修改 MySQL 配置文档 /etc/mysql/mysql.conf.d/mysqld.cnf,在 [mysqld] 段添加以下配置:

log-bin=mysql-bin    //[必须]启用二进制日志
server-id=1          //[必须]服务器标识ID,每台服务器唯一

你可能会遇到bash: vi: command not found,这是因为vim没有安装,可以使用如下命令安装:

apt-get update
apt-get install vim

配置从数据库

进入slave容器

docker exec -it mysql-slave /bin/bash

 

登录mysql

mysql -u root -p123456

修改root权限,可以通过任何客户端连接

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

修改 MySQL 配置文档 /etc/mysql/mysql.conf.d/mysqld.cnf,在 [mysqld] 段添加以下配置:

log-bin=mysql-bin    //[必须]启用二进制日志
server-id=2         //[必须]服务器标识ID,每台服务器唯一

主从配置

记得在配置完主数据和从数据库后要重启数据库,红线处就是容器ID

docker restart <容器 ID>    重启容器

连接主数据库,查看数据库状态

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

记录 File 的值和 Position 的值,等会配置 slave 服务器的时候要用

连接从数据库,配置主从复制

mysql>change master to
master_host='x.x.x.x', // 这里填 master 主机 ip
master_user='root',
master_log_file='mysql-bin.000001', // 这里填写 File 的值
master_log_pos=154, // 这里填写 Position 的值。
master_port=3337,
master_password='123456';
Query OK, 0 rows affected, 2 warnings (0.03 sec)
mysql> start slave; // 启动从服务器复制功能
Query OK, 0 rows affected (0.01 sec)

如果不小心配置错, 输入 mysql> stop slave; 然后再录入一遍就可以了。

查看主从连接状态,图中红色框内两个必须位yes才表示成功

show slave status\G

 

然后你就可以使用navicat连接主从数据库,记得连接数据库的端口为你3306映射到的端口号。连接成功后,你操作主数据库,你会发现从数据库也进行了同样的操作

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值