要在 Ubuntu 20.04 上配置 MySQL 主从同步,需要在两台服务器上进行一系列配置。以下是详细的步骤:
在主服务器上(172.10.12.195):
-
配置 MySQL:
编辑/etc/mysql/mysql.conf.d/mysqld.cnf
文件,确保以下配置已设置:[mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_do_db = [NameOfYourDatabase]
其中
NameOfYourDatabase
是您想要复制的数据库名称。如果您想复制所有数据库,可以省略binlog_do_db
行。 -
重启 MySQL 服务:
sudo systemctl restart mysql
-
创建复制用户:
登录到 MySQL:mysql -u root -p
创建一个具有复制权限的用户:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'replicaPassword'; GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; FLUSH PRIVILEGES;
将
'replicaPassword'
替换为一个安全的密码。 -
锁定数据库(短暂):
为了获取一致的数据快照,需要锁定数据库:FLUSH TABLES WITH READ LOCK;
-
记录二进制日志位置:
在 MySQL 中,运行以下命令并记下文件名和位置:SHOW MASTER STATUS;
您会看到
File
和Position
的值,稍后需要用到。 -
备份数据库:
在新的终端窗口中,使用mysqldump
创建一个数据库的备份(确保替换[NameOfYourDatabase]
):mysqldump -u root -p [NameOfYourDatabase] > db_backup.sql
-
解锁数据库:
回到 MySQL 终端解锁表:UNLOCK TABLES;
在从服务器上(172.10.12.200):
-
配置 MySQL:
编辑/etc/mysql/mysql.conf.d/mysqld.cnf
文件,添加或修改以下行:[mysqld] server-id = 2 relay_log = /var/log/mysql/mysql-relay-bin.log log_bin = /var/log/mysql/mysql-bin.log read_only = 1
设置
read_only
确保从服务器只能读取。 -
重启 MySQL 服务:
sudo systemctl restart mysql
-
导入数据库备份:
将之前创建的数据库备份 (db_backup.sql
) 传输到从服务器,并导入:mysql -u root -p < db_backup.sql
-
配置复制:
登录到 MySQL:mysql -u root -p
使用之前记录的文件名和位置配置复制:
CHANGE MASTER TO MASTER_HOST='172.10.12.195', MASTER_USER='replicator', MASTER_PASSWORD='replicaPassword', MASTER_LOG_FILE='[RecordedFileName]', MASTER_LOG_POS=[RecordedPosition];
将
[RecordedFileName]
和[RecordedPosition]
替换为之前记录的值。 -
启动复制进程:
START SLAVE;
-
验证复制状态:
SHOW SLAVE STATUS\G
检查输出,确保
Slave_IO_Running
和Slave_SQL_Running
都是Yes
。文章来源:https://www.toymoban.com/news/detail-794518.html
完成这些步骤后,从服务器应该开始从主服务器复制数据。注意,这种设置在生产环境中可能需要更多的安全和优化措施。此外,确保网络设置允许两台服务器之间的通信。文章来源地址https://www.toymoban.com/news/detail-794518.html
到了这里,关于在 Ubuntu 20.04 上配置 MySQL 主从同步的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!