centOS7 配合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
使用命令进入文件夹查看是否创建成功
四、使用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
在键盘输入i切换成插入模式,上图中红色框部分为输入的内容。在键盘使用Ctrl + C 推出插入模式,使用 :wq! 保存并退出。
cd /dockerfile/slave_mysql/mysql.conf.d vim mysqld.cnf
在键盘输入i切换成插入模式,上图中红色框部分为输入的内容。在键盘使用Ctrl + C 推出插入模式,使用 :wq! 保存并退出。
输入以下命令,重启mysql服务docker restart mysql1907 mysql1908
等待重启完成。重启完成之后,可以使用数据连接工具navicat等。如果是云服务器,最好使用navicat便捷操作,如果是虚拟机,可以接着使用终端操作。(1)和(2)任选其一即可。
(1)navicat连接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
下一篇:markdown基础语法