asp成品网站,WordPress纯代码html地图,数据库端口 wordpress,百度竞价渠道代理文章目录为什么基于Docker搭建#xff1f;一、拉取镜像创建容器1. 拉取mysql:5.7镜像2. 创建master容器3. 创建slave容器4. 查看正在运行的容器5. 此时可以使用Navicat等工具测试连接mysql二、搭建Master(主)服务器2.1. 进入到Master容器内部2.2. my.cnf编辑2.2. 重启mysql服务…
文章目录为什么基于Docker搭建一、拉取镜像创建容器1. 拉取mysql:5.7镜像2. 创建master容器3. 创建slave容器4. 查看正在运行的容器5. 此时可以使用Navicat等工具测试连接mysql二、搭建Master(主)服务器2.1. 进入到Master容器内部2.2. my.cnf编辑2.2. 重启mysql服务使配置生效2.3. 重启master容器2.4. 进入master容器2.5. 登陆mysql2.6. 创建建数据同步用户和赋予权限2.7. 查看二进制文件位置三、搭建slave(从)服务器3.1. 进入到slave容器内部3.2. my.cnf编辑3.3. 重启mysql服务使配置生效3.4. 重启slave容器3.5. 进入slave容器3.6. 登陆mysql3.7. slave配置主从复制3.8. 查看主从同步状态3.9. 开启主从复制3.10. 查看主从同步状态四、mysql主从复制排错五、 测试主从复制5.1. 测试库是否同步5.2. 测试表是否同步5.3. 测试数据是否同步为什么基于Docker搭建
资源有限虚拟机搭建对机器配置有要求并且安装mysql步骤繁琐一台机器上可以运行多个Docker容器Docker容器之间相互独立有独立ip互不冲突Docker使用步骤简便启动容器在秒级别
一、拉取镜像创建容器
搭建Master(主)mysql服务器 首先拉取docker镜像,我们这里使用5.7版本的mysql 1. 拉取mysql:5.7镜像
docker pull mysql:5.72. 创建master容器 运行mysql:5.7镜像即可创建master容器 docker run -p 3339:3306 --name master -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.73. 创建slave容器 运行mysql:5.7镜像即可创建master容器 docker run -p 3339:3306 --name slave-e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7Master对外映射的端口是3339Slave对外映射的端口是3340。因为docker容器是相互独立的每个容器有其独立的ip所以不同容器使用相同的端口并不会冲突。这里我们应该尽量使用mysql默认的3306端口否则可能会出现无法通过ip连接docker容器内mysql的问题。 4. 查看正在运行的容器
docker ps5. 此时可以使用Navicat等工具测试连接mysql 二、搭建Master(主)服务器
2.1. 进入到Master容器内部 docker exec -it 3622fce721ea /bin/bash
或者
docker exec -it master /bin/bash2.2. my.cnf编辑 vim /etc/mysql/my.cnf添加内容如下
[mysqld]
## 同一局域网内注意要唯一
server-id100
## 开启二进制日志功能可以随便取关键
log-binmysql-bin如果出现bash: vim: command not found请进入传送门 https://blog.csdn.net/weixin_40816738/article/details/113935878
2.2. 重启mysql服务使配置生效 配置完成之后需要重启mysql服务使配置生效。使用service mysql restart完成重启。重启mysql服务时会使得docker容器停止我们还需要docker start mysql-master启动容器。 service mysql restart2.3. 重启master容器
重启启动master(mysql)容器
docker start master
或者
docker start 3622fce721ea2.4. 进入master容器
docker exec -it 3622fce721ea /bin/bash2.5. 登陆mysql
mysql -uroot -p注密码1234562.6. 创建建数据同步用户和赋予权限 下一步在Master数据库创建数据同步用户授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限用于在主从库之间同步数据。 CREATE USER slave% IDENTIFIED BY 123456;
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO slave%;2.7. 查看二进制文件位置
show master status;File和Position字段的值后面将会用到在后面的操作完成之前需要保证Master库不能做任何操作否则将会引起状态变化File和Position字段的值变化。 三、搭建slave(从)服务器 和配置Master(主)一样在Slave配置文件my.cnf中添加如下配置 3.1. 进入到slave容器内部
docker exec -it 6762357a463d/bin/bash
或者
docker exec -it slave /bin/bash3.2. my.cnf编辑 vim /etc/mysql/my.cnf添加内容如下
[mysqld]
## 设置server_id,注意要唯一
server-id101
## 开启二进制日志功能以备Slave作为其它Slave的Master时使用
log-binmysql-slave-bin
## relay_log配置中继日志
relay_logedu-mysql-relay-bin 如果出现bash: vim: command not found请进入传送门 https://blog.csdn.net/weixin_40816738/article/details/113935878
3.3. 重启mysql服务使配置生效 配置完成之后需要重启mysql服务使配置生效。使用service mysql restart完成重启。重启mysql服务时会使得docker容器停止我们还需要docker start mysql-master启动容器。 service mysql restart3.4. 重启slave容器
重启启动slave(mysql)容器
docker start slave
或者
docker start 6762357a463d3.5. 进入slave容器
docker exec -it 6762357a463d /bin/bash3.6. 登陆mysql
mysql -uroot -p注密码1234563.7. slave配置主从复制
change master to master_host172.17.0.2, master_userslave, master_password123456, master_port3306, master_log_filemysql-bin.000001, master_log_pos 834, master_connect_retry30;标签(属性)命令说明master_hostMaster的地址指的是容器的独立ip,可以通过docker inspect --format’{{.NetworkSettings.IPAddress}}’ 容器名称master_portMaster的端口号指的是容器的端口号master_user用于数据同步的用户master_password用于同步的用户的密码master_log_file指定 Slave 从哪个日志文件开始复制数据即上文中提到的 File 字段的值master_log_pos从哪个 Position 开始读即上文中提到的 Position 字段的值master_connect_retry如果连接失败重试的时间间隔单位是秒默认是60秒
3.8. 查看主从同步状态 在Slave 中的mysql终端执行show slave status \G用于查看主从同步状态。 show slave status \G注意不要有分好;号
3.9. 开启主从复制 正常情况下SlaveIORunning 和 SlaveSQLRunning 都是No因为我们还没有开启主从复制过程。使用start slave开启主从复制过程然后再次查询主从同步状态show slave status \G;。 start slave;3.10. 查看主从同步状态 在Slave 中的mysql终端执行show slave status \G用于查看主从同步状态。 show slave status \G# 注意不要有分好;号声明SlaveIORunning 和 SlaveSQLRunning 都是Yes说明主从复制已经开启。此时可以测试数据同步是否成功。
四、mysql主从复制排错
https://gblfy.blog.csdn.net/article/details/114025927
五、 测试主从复制 测试主从复制方式就十分多了最简单的是在Master创建一个数据库然后检查Slave是否存在此数据库。 5.1. 测试库是否同步
在master 主mysql创建数据库查看slave从库是否同步
5.2. 测试表是否同步 在master 主mysql的ds0数据库创建test表查看slave从库新创建test表是否同步 5.3. 测试数据是否同步 在master 主mysql的ds0数据库的test表中添加数据查看slave从库新增数据是否同步