顶部横幅广告
  • 微信
您当前的位置:首页 > 技术学习 > 随心学习

centOS7 配合docker安装mysql主从数据库

作者:石德生 时间:2022-04-10 阅读数:人阅读文章来源:原创内容
本次实验使用云服务器,默认超级管理员root。在docker镜像中搭建mysql主从数据库,主库中编辑数据库,从库同步复制。

一、在centos7上安装docker

使用官方脚本命令自动安装,安装时间与网络环境有关(虚拟机直接使用终端,云服务器使用Xshell、FinalShell远程连接工具)

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

安装完成之后,启动docker服务

service docker restart

二、在docker内搭建mysql服务,以mysql5.7为例

1 拉取mysql5.7的镜像
docker pull mysql:5.7
2 docker 安装并启动mysql,mysql1907为主库。
docker run --name mysql1907 -e MYSQL_ROOT_PASSWORD=1234qwer! -p 3377:3306 -d mysql:5.7
docker run --name mysql1908 -e MYSQL_ROOT_PASSWORD=1234qwer! -p 3378:3306 -d mysql:5.7

使用以下命令查看,docker是否有服务在运行

docker ps

三、在家目录下建立 /dockerfile/master_mysql 和 /dockerfile/slave_mysql

mkdir /dockerfile
cd  /dockerfile
mkdir /master_mysql
mkdir /slave_mysql

使用命令进入文件夹查看是否创建成功
centOS7 配合docker安装mysql主从数据库

四、使用cd回退到主目录,复制配置文件,复制完成后可以再次进入文件夹查看是否成功复制

docker cp mysql1907:/etc/mysql/mysql.conf.d /dockerfile/master_mysql/mysql.conf.d
docker cp mysql1907:/etc/mysql/mysql.conf.d /dockerfile/slave_mysql/mysql.conf.d
docker cp mysql1907:/var/log /dockerfile/master_mysql/log
docker cp mysql1907:/var/log /dockerfile/slave_mysql/log

五、删除数据库服务,并安装挂载启动

docker rm -f mysql1907
docker rm -f mysql1908
docker run --name mysql1907 -e MYSQL_ROOT_PASSWORD=1234qwer! -p 3377:3306 -v /dockerfile/master_mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /dockerfile/master_mysql/log/:/var/log --privileged=true -d mysql:5.7
docker run --name mysql1908 -e MYSQL_ROOT_PASSWORD=1234qwer! -p 3378:3306 -v /dockerfile/slave_mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /dockerfile/slave_mysql/log/:/var/log --privileged=true -d mysql:5.7

六、从家主目录切换至相应目录,开始服务配置

cd /dockerfile/master_mysql/mysql.conf.d
vim mysqld.cnf

centOS7 配合docker安装mysql主从数据库

在键盘输入i切换成插入模式,上图中红色框部分为输入的内容。在键盘使用Ctrl + C 推出插入模式,使用  :wq! 保存并退出。

cd /dockerfile/slave_mysql/mysql.conf.d
vim mysqld.cnf

centOS7 配合docker安装mysql主从数据库

在键盘输入i切换成插入模式,上图中红色框部分为输入的内容。在键盘使用Ctrl + C 推出插入模式,使用  :wq! 保存并退出。

输入以下命令,重启mysql服务
docker restart mysql1907 mysql1908

等待重启完成。重启完成之后,可以使用数据连接工具navicat等。如果是云服务器,最好使用navicat便捷操作,如果是虚拟机,可以接着使用终端操作。(1)和(2)任选其一即可。

(1)navicat连接mysql服务

centOS7 配合docker安装mysql主从数据库
centOS7 配合docker安装mysql主从数据库

打开navicat新建连接(如图),主机为云服务器ip地址,端口3377,密码为之前所设1234qwer!,点击测试连接,成功之后点击确认。打开该连接,新建查询,(如图)。输入的命令如下。

CREATE USER 'tonbu'@'%' IDENTIFIED BY '1234qwer!';
GRANT REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO 'tonbu'@'%'; 
FLUSH PRIVILEGES;

全选运行,之后运行 show master status; 如果Position不是154,则运行reset master;

接下来开始从库配置,连接从库,也就是mysql1908 。端口为3378,密码一致。打开该连接,新建查询。全选运行,运行命令如下

CHANGE MASTER TO MASTER_HOST='172.17.0.2', 
MASTER_USER='tonbu'
,master_port=3306,
MASTER_PASSWORD='1234qwer!',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;

运行之前先查看mysql1907的网络是不是172.17.0.2,可以在终端输入下列命令查询

docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql1907

之后在navicat连接mysql1908查询
show slave status;
start slave;
(2)如果是终端输入,看这里

首先进入主库,登录mysql

docker exec -it mysql1907 /bin/bash
mysql -p 

回车之后输入密码即可。登录成功之后,命令在(1)中已经说明。主库配置完成之后接着配置从库。

docker exec -it mysql1908 /bin/bash

同样的先登录mysql,输入的命令(1)中也有。

完成如上步骤之后,在终端通过命令操作主库或者使用mysql可视化工具操作主库。新建数据库,新建数据表,从库可以自动同步,使用可视化工具时,在主库新增数据表后,从库要刷新方可看见。

本站部分文章、数据、图片来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。邮箱:1737618317@qq.com

标签:
微信

石德生

当你还撑不起你的梦想时,就要去奋斗。如果缘分安排我们相遇,请不要让她擦肩而过。我们一起奋斗!

微信
上云折上折