pycharm做网站,百度一下建设部网站,玉环市建设规划局网站,杭州pc手机网站建设hello 各位小伙伴大家好#xff0c;今年 5 月份的时候#xff0c;松哥和大家聊过如何搭建 MySQL 主从复制#xff1a;提高性能#xff0c;MySQL 读写分离环境搭建(一)提高性能#xff0c;MySQL 读写分离环境搭建(二)不过很多小伙伴反映在 Linux 中安装 MySQL 比较费劲今年 5 月份的时候松哥和大家聊过如何搭建 MySQL 主从复制提高性能MySQL 读写分离环境搭建(一)提高性能MySQL 读写分离环境搭建(二)不过很多小伙伴反映在 Linux 中安装 MySQL 比较费劲弄错了想从头开始都难因此今天松哥就来和大家分享一下如何通过 Docker 快速搭建 MySQL 主从复制。关于 Docker关于 Docker松哥这里就不再多说了松哥之前有出过一个 Docker 教程大家在公众号后台回复 Docker 就可以获取教程下载地址。主从规划首先规划两个 MySQL 实例192.168.66.131:33061/主机192.168.66.131:33062/从机当然大家可以准备多个从机从机的配置步骤是一样的。在 Docker 中创建两个 MySQL 实例的命令如下docker run --name mysql1 -p 33061:3306 -e MYSQL_ROOT_PASSWORD123 -d mysql:5.7 --character-set-serverutf8mb4 --collation-serverutf8mb4_unicode_ci
docker run --name mysql2 -p 33062:3306 -e MYSQL_ROOT_PASSWORD123 -d mysql:5.7 --character-set-serverutf8mb4 --collation-serverutf8mb4_unicode_ci
创建完成后通过 docker ps 命令可以查看 MySQL 实例的运行情况如此表示 MySQL 实例已经在运行了。使用 Docker 配置 MySQL 主从最方便的莫过于配错了可以非常方便的从头开始。接下来我们就开始主从的配置。配置主机主机上的配置主要是两个地方第一个是配置一个从机登录用户第二个配置开启 binlog。Docker 中创建的 MySQL 实例默认只有一个用户就是 root这里我们需要进入到 MySQL 命令行再给它分配一个用户。在宿主机中通过如下命令连接上主机mysql -u root -h 192.168.66.131 -P 33061 -p
输入密码后进入到主机的命令行。然后给从机分配用户(因为我的宿主机上也安装了 MySQL所以可以直接执行 mysql 命令如果宿主机没有安装 MySQL建议通过 docker exec 进入到 MySQL 容器中然后执行如下命令)GRANT REPLICATION SLAVE ON *.* to rep1% identified by 123;
这个表示从机一会使用 rep1/123 来登录主机% 表示这个账户可以从任意地址登录也可以给一个固定的 IP表示这个账户只能从某一个 IP 登录。接下来开启 binlog。binlog 的开启需要修改 MySQL 的配置因此我们需要进入到容器内部去执行。首先进入到容器内部docker exec -it mysql1 /bin/bash
然后找到 MySQL 配置文件的位置/etc/mysql/mysql.conf.d/mysqld.cnf
这就是 MySQL 的配置文件。我们要在这里进行修改操作。因为 MySQL 容器中默认没有 VI 编辑器安装费事所以我们可以在宿主机中将配置文件写好然后拷贝到 MySQL 容器中覆盖原有配置。我们主要在该配置文件中添加如下内容log-bin/var/lib/mysql/binlog
server-id1
binlog-do-db cmdb
第一行表示配置 binlog 的位置理论上 binlog 可以放在任意位置但是该位置MySQL 一定要有操作权限。server-id 表示集群中每个实例的唯一标识符。bindlog-do-db 表示要同步的数据库有哪些。当从机连上主机后并不是主机中的每一个库都要同步这里表示配置哪些库需要同步。配置完成后保存退出。接下来执行命令将宿主机中的 mysqld.cnf 拷贝到容器中docker cp ./mysqld.cnf mysql1:/etc/mysql/mysql.conf.d/
拷贝完成后重启容器。docker restart mysql1
容器重启完成后进入到主机的命令行中查看配置是否成功File 和 Position 需要记着这两个标记了二进制日志的起点位置在从机的配置中将使用到这两个参数。至此主机的配置就算完成了。配置从机从机的配置比较简单不用开启 binlog也不用配置要同步的库只需要在配置文件中添加一个 server-id 即可。这是从机的 mysqld.cnf 配置配置完成后一样拷贝到容器中。拷贝方式和主机一样docker cp ./mysqld.cnf mysql2:/etc/mysql/mysql.conf.d/
配置完成后重启从机容器docker restart mysql2
重启完成后进入到 mysql2 的命令行执行如下命令开启数据同步change master to master_host192.168.66.131,master_port33061,master_userrep1,master_password123,master_log_filebinlog.000001,master_log_pos154;
配置完成后开启从机进程。在从机命令行执行如下命令start slave;
接下来执行 show slave status\G查看从机状态这里重点查看 Slave_IO_Running 和 Slave_SQL_Running 这两个的值必须为 Yes。如果有一个的值不为 Yes表示配置失败一般情况下配置失败下面会有失败提示。至此我们的 MySQL 主从就算是配置成功了。检验配置成功之后我们可以通过 Navicat 或者 SQLyog 等工具连接上我们的两个 MySQL 实例然后在主机中创建一个名为 db1 的库你会发现从机中也会自动同步这个库。OK本文就说这么多有问题欢迎大家留言讨论。【END】关注下方二维码订阅更多精彩内容