Ubuntu服务器中MySQL如何进行主从复制

发布于:2025-06-25 ⋅ 阅读:(21) ⋅ 点赞:(0)

  一、MySQL 主从复制基本原理

  MySQL 主从复制是指:一台数据库服务器负责写入操作,并将数据变更以二进制日志形式记录下来;一台或多台从库通过读取主库的二进制日志,实时或半实时地将主库的写入操作同步到自身数据库,实现数据一致性。

  二、环境准备

  本示例使用以下环境:

  Ubuntu 20.04 / 22.04 两台或多台服务器(主库1台,从库1台或多台)

  MySQL 8.x(5.7 同理,部分配置项命名不同)

  主库 IP:192.168.1.100

  从库 IP:192.168.1.101

  建议主从服务器防火墙开放 MySQL 端口(默认 3306),并在内网部署以确保安全性。

  三、主库配置

  1.编辑主库 MySQL 配置文件

  在主库服务器上修改 MySQL 配置文件,一般路径:

  /etc/mysql/mysql.conf.d/mysqld.cnf

  主要修改或增加以下内容:

[mysqld]
server-id = 1               # 唯一标识主库
log_bin = /var/log/mysql/mysql-bin.log   # 开启二进制日志
binlog_do_db = your_database_name        # 指定需要复制的数据库(可选)

  保存后,重启 MySQL:

  sudo systemctl restart mysql

  2.创建复制账号

  登录 MySQL:

  mysql -u root -p

  创建一个专用复制账号,并授权:

CREATE USER 'repl'@'192.168.1.%' IDENTIFIED WITH mysql_native_password BY 'strong_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.%';
FLUSH PRIVILEGES;

  说明:

  用户名可自定义(如 repl)

  IP 段可根据实际环境调整

  3.查看主库状态

  锁定表并查看主库当前二进制日志状态:

  FLUSH TABLES WITH READ LOCK;
  SHOW MASTER STATUS;

  记录输出中的:

  File (例如:mysql-bin.000001)

  Position (例如:1234)

  不要关闭此终端,否则锁会失效。

  四、从库配置

  1.编辑从库配置文件

  在从库服务器上修改 MySQL 配置文件:

[mysqld]
server-id = 2                # 从库唯一ID,和主库不同
relay_log = /var/log/mysql/mysql-relay-bin.log

  重启 MySQL:

  sudo systemctl restart mysql

  2.配置主从关系

  登录从库:

  mysql -u root -p

  执行如下命令,配置主库信息和同步点:

CHANGE MASTER TO
MASTER_HOST='192.168.1.100',
MASTER_USER='repl',
MASTER_PASSWORD='strong_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1234;

  请将 MASTER_LOG_FILE 和 MASTER_LOG_POS 替换成主库实际状态。

  3.启动复制

  START SLAVE;

  查看复制状态:

  SHOW SLAVE STATUS\G

  重点检查输出中的:

  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes

  如果两项均为 Yes,则说明主从配置成功。

  4.解除主库锁定

  回到主库终端:

  UNLOCK TABLES;

  主库恢复写入。

  五、验证主从复制

  在主库执行:

USE your_database_name;
CREATE TABLE test_table (id INT PRIMARY KEY, val VARCHAR(50));
INSERT INTO test_table VALUES (1, 'hello');

  在从库查看:

  SELECT * FROM your_database_name.test_table;

  若数据同步成功,则表和数据与主库一致。

  主从架构不仅提升了数据库读写性能,还为数据安全和业务可用性提供了重要保障。在实际部署中,可根据业务需求选择全量同步、部分库表同步、多从库扩展等方案,以适配不同规模的生产环境。

 


网站公告

今日签到

点亮在社区的每一天
去签到