MySQL数据库主从复制实验操作步骤

B站影视 港台电影 2025-10-16 23:28 3

摘要:server-id = 1log_bin = mysql-binbinlog-format = ROW# 可选:指定要复制的数据库(如不配置则同步所有数据库)# binlog-do-db = your_database_name# 可选:设置不同步的系统数据库

192.168.154.171为Master

192.168.154.170为Slave

确保两台服务器时间同步,避免因时间差导致复制异常

# 在两台服务器上执行sudo dnf install ntp -ysudo systemctl start ntpdsudo systemctl enable ntpd

在两台服务器上安装MySQL服务器

# 安装MySQL服务器sudo dnf install mysql-server -y# 初始化MySQL(设置root密码等)sudo mysql_secure_installation# 启动并启用MySQL服务sudo systemctl enable mysqld --now# 配置防火墙允许MySQL服务sudo firewall-cmd --permanent --add-service=mysqlsudo firewall-cmd --reloadsudo vi /etc/my.cnf[mysqld]server-id = 1log_bin = mysql-binbinlog-format = ROW# 可选:指定要复制的数据库(如不配置则同步所有数据库)# binlog-do-db = your_database_name# 可选:设置不同步的系统数据库# binlog-ignore-db = mysql,information_schema,performance_schemasudo systemctl restart mysqld

登录MySQL创建复制用户

mysql -u root -p-- 创建复制用户(请将'your_password'替换为强密码)CREATE USER 'replicator'@'192.168.154.170' IDENTIFIED WITH mysql_native_password BY 'your_password';GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'192.168.154.170';FLUSH PRIVILEGES;SHOW MASTER STATUS;

记录返回的File(mysql-bin.000001)和Position(867)值,后续配置从库时会用到。

[mysqld]server-id = 2relay-log = mysql-relay-binread-only = 1# 可选:如果从库也需要作为其他库的主库,添加以下配置# log-slave-updates = 1

在主库上执行:

mysqldump -u root -p --all-databases --single-transaction --master-data=2 > backup.sql# 将备份文件复制到从库scp backup.sql root@192.168.154.170:/tmp/# 在从库上导入数据mysql -u root -p

在从库上执行以下命令:

-- 配置主库信息(请替换为实际的主库信息和之前记录的File、Position值)CHANGE MASTER TOMASTER_HOST='192.168.154.171',MASTER_USER='replicator',MASTER_PASSWORD='your_password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=867;-- 启动复制START SLAVE;

在从库上检查复制状态:

SHOW SLAVE STATUS\GSlave_IO_Running: YesSlave_SQL_Running: YesSeconds_Behind_Master: 0(表示已完全同步)

如果这两个字段均为Yes,表示主从复制已正常运行。

在主库上创建测试数据:

CREATE DATABASE replication_test;USE replication_test;CREATE TABLE test_table (id INT, name VARCHAR(50));INSERT INTO test_table VALUES (1, 'test_data');

在从库上检查数据是否同步:

SELECT * FROM replication_test.test_table;

如果能查询到相同数据,说明主从复制配置成功。

来源:天哥教育

相关推荐