Linux下 MySQL 主从复制配置

本文详细介绍了如何配置MySQL的主从复制,包括在主库和从库上设置二进制日志,创建复制用户,获取主库的日志信息,以及在从库上设置主库信息和启动复制进程。同时,文章提到了可能出现的问题及解决方案,如初始化relayloginfo结构失败的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:主库正常黑体字     从库字淬红

1. 在主库上开启二进制日志记录功能

vim /etc/my.cnf            [mysqld]下输入


log-bin=mysql-bin
server-id=1

2.在从库服务器上配置my.cnf配置文件,增加:

log-bin=mysql-bin

server-id=2

3. 在主库上创建一个用于从库访问的备份用户

在主库上创建一个用于从库访问的备份用户

mysql> CREATE USER 'qaz'@'%' IDENTIFIED BY '123.qaZ//';
Query OK, 0 rows affected (0.00 sec)

 并授予其 `REPLICATION SLAVE` 权限

mysql> GRANT REPLICATION SLAVE ON *.* TO 'qaz'@'%';
Query OK, 0 rows affected (0.00 sec)

4.在主库上获取二进制日志文件和位置信息   

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      593 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

6.先查看所有数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

7.查看IP

8. 在从库上添加主库信息

mysql> CHANGE MASTER TO  MASTER_HOST='192.168.1.130', MASTER_USER='qaz', MASTER_PASSWORD='123.qaZ//',  MASTER_LOG_FILE='mysql-bin.000001',  MASTER_LOG_POS=593;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
CHANGE MASTER TO 
MASTER_HOST='主库地址',
MASTER_USER='用户名', 
MASTER_PASSWORD='密码',
MASTER_LOG_FILE='当前的二进制日志文件名', 
MASTER_LOG_POS=当前的二进制日志位置;

请注意,MASTER_HOST应该是主服务器的IP地址或主机名,MASTER_USER和MASTER_PASSWORD应该是主服务器的用户名和密码。MASTER_LOG_FILE和MASTER_LOG_POS应该是主服务器当前二进制日志文件的名称和位置。如果您的主服务器上有多个二进制日志文件,则应该使用最新的二进制日志文件。

9.启动从库的复制进程

mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)

10.执行以下命令可查看主从复制状态:

SHOW SLAVE STATUS\G;

在输出结果中,可以查看到是否连接到主库、当前正在复制的二进制日志文件名和位置、复制延迟等信息。

11.从查看数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

12.主创建数据库

mysql> create database asdf;
Query OK, 1 row affected (0.00 sec)

 查看


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| asdf               |
| mydb               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

13.从查看

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| asdf               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

在 Linux MySQL 主从复制配置完成后,可以通过以下几种方式进行验证: 1. 查看主从服务器状态:在主服务器上执行命令 `SHOW MASTER STATUS;`,在从服务器上执行命令 `SHOW SLAVE STATUS\G;`,查看输出结果是否正常。 2. 在主服务器上创建一个数据库或者表,然后在从服务器上查看是否同步成功。 3. 在主服务器上进行数据修改,然后在从服务器上查看是否同步成功。 4. 在主服务器上停止 MySQL 服务,然后在从服务器上查看是否自动切换为主服务器。 5. 在主服务器上进行数据备份,然后在从服务器上进行数据恢复,查看是否恢复成功。 以上是常用的验证方式,可以根据实际情况选择适合自己的方式进行验证。

可能出现的问题及解决:

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值