第三阶段基础
时 间:2023年6月7日
参加人:全班人员
内 容:
Mysql数据库之主从复制配置
目录
前提环境配置
MySQL 5.7 版本的主从复制配置步骤
主 库
1. 在主库上开启二进制日志记录功能
2. 在主库上创建一个用于从库访问的备份用户
3. 在主库上获取二进制日志文件和位置信息
从 库
1 在从库上开启二进制日志记录功能
2. 在从库上添加主库信息
3、启动从库的复制进程
验 证
备 注
前提环境配置
关闭防火墙
(systemtl stop firewalld、iptables -F、setenforce 0)
主库:网络模式为桥接模式
ip地址为192.168.1.125
从库:网络模式为桥接模式
ip地址为192.168.1.106
均安装了mysql数据库
MySQL 5.7 版本的主从复制配置步骤
主 库
1. 在主库上开启二进制日志记录功能
在主库上的 `my.cnf` 配置文件中,将 `log-bin` 参数设置为二进制日志记录的文件名(例如:`log-bin=mysql-bin`),并设置 `server-id` 参数来标识主库的唯一 ID 号。例如:
例:操作:vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=1
操作:重启服务
systemctl restart mysqld
systemctl status mysqld
2. 在主库上创建一个用于从库访问的备份用户
在主库上创建一个用于从库访问的备份用户,并授予其 `REPLICATION SLAVE` 权限:
CREATE USER 'backup用户'@'%' IDENTIFIED BY 'password密码';
GRANT REPLICATION SLAVE ON *.* TO 'backup用户'@'%';
其中 `backup` 是备份用户的用户名,`password` 是该用户的密码。`'%'` 表示该用户可以从任意远程地址访问主库,具体可以根据实际需求修改。
例:操作
进入mysql:mysql -uroot -pJxx-2023
CREATE USER 'Hy'@'%' IDENTIFIED BY 'Hy-584520';
GRANT REPLICATION SLAVE ON *.* TO 'Hy'@'%';
3. 在主库上获取二进制日志文件和位置信息
在主库上获取当前正在写入的二进制日志文件名和位置信息:
SHOW MASTER STATUS;
该命令的输出结果包含主库当前正在写入的二进制日志文件名 `File` 和位置 `Position`。将这两个值记录下来,后面将用到。
例:操作:
SHOW MASTER STATUS;
从 库
1 在从库上开启二进制日志记录功能
在从库上的 `my.cnf` 配置文件中,将 `log-bin` 参数设置为二进制日志记录的文件名(例如:`log-bin=mysql-bin`),并设置 `server-id` 参数来标识主库的唯一 ID 号。例如:
例:操作vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=2
操作:重启服务
systemctl restart mysqld
systemctl status mysqld
2. 在从库上添加主库信息
在从库上执行以下命令,添加主库的连接信息。其中 `master-host` 是主库的 IP 或主机名,`master-user` 和 `master-password` 是主库步骤 2 中创建的备份用户的用户名和密码,`master-log-file` 和 `master-log-pos` 是主库步骤3中获取的二进制日志文件名和位置信息:
CHANGE MASTER TO
MASTER_HOST='master-host IP地址',
MASTER_USER='backup 用户',
MASTER_PASSWORD='password 密码',
MASTER_LOG_FILE='master-log-file 日志文件',
MASTER_LOG_POS=master-log-pos 存放位置;
其中 `master-host`, `master-user`,
`master-password`, `master-log-file`,
`master-log-pos` 分别替换为实际的值。
例:操作:
进入mysql:mysql -uroot -pJxx-2023
CHANGE MASTER TO
MASTER_HOST='192.168.1.125',MASTER_USER='Hy',MASTER_PASSWORD='Hy-584520',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=753;
3、启动从库的复制进程
在从库上执行以下命令,启动从库的复制进程:
START SLAVE;
此时,从库将开始连接主库,并复制主库上的数据。当主从同步顺利进行时,执行以下命令可查看主从复制状态:
SHOW SLAVE STATUS\G;
在输出结果中,可以查看到是否连接到主库、当前正在复制的二进制日志文件名和位置、复制延迟等信息。
需要注意的是,在进行 MySQL 主从复制的操作时,我们应该保持不断地监控和维护主从库之间的数据同步,及时发现和处理异常情况,从而确保数据库系统的高可用性和稳定性。
例:操作:START SLAVE;
SHOW SLAVE STATUS\G;
验 证
主库在原有的基础上新建一个数据库Test3,
查看从库的改变
例:操作:主库:
show databases;
create database Test3;
从 库:
show databases;
验证成功!!!
备 注
可能出现的问题及解决:
mysql> start slave;
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
mysql> reset slave;
Query OK, 0 rows affected (0.10 sec)
mysql> start slave;
Query OK, 0 rows affected (0.10 sec)