摘要: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_schema登录MySQL创建复制用户
mysql -u root -p记录返回的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在从库上执行以下命令:
在从库上检查复制状态:
SHOW SLAVE STATUS\G如果这两个字段均为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;如果能查询到相同数据,说明主从复制配置成功。
来源:天哥教育