MySQL主从复制是一种数据库复制技术,它允许将一个MySQL数据库服务器(主服务器)上的数据复制到一个或多个其他MySQL数据库服务器(从服务器)。这个过程基于一种异步、事件驱动的模型,其中主服务器将其写入的数据更改记录到二进制日志文件中,然后从服务器读取并应用这些日志文件来保持数据的一致性。
进入mysql命令行
mysql -u root -p
执行以下SQL命令以启用二进制日志。这将在MySQL配置文件(通常是my.cnf
或my.ini
)中添加或修改相关配置:
[mysqld]
server-id = 1 # 主服务器设置为唯一的ID
log_bin = /var/log/mysql/mysql-bin.log # 二进制日志文件路径
重新启动MySQL服务器以应用更改:
sudo service mysql restart
创建一个用于复制的用户,并授予必要的权限:
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;
创建数据库备份。你可以使用mysqldump
工具来备份数据库:
mysqldump -u root -p --all-databases --master-data > backup.sql
进入从服务器的MySQL命令行:
mysql -u root -p
执行以下SQL命令以配置从服务器的连接:
CHANGE MASTER TO
MASTER_HOST = '主服务器IP地址',
MASTER_USER = 'repl_user',
MASTER_PASSWORD = 'password',
MASTER_LOG_FILE = '二进制日志文件名',
MASTER_LOG_POS = 二进制日志文件位置;
'主服务器IP地址'
:主服务器的IP地址或主机名。'repl_user'
:步骤2中创建的复制用户。'password'
:复制用户的密码。'二进制日志文件名'
和 '二进制日志文件位置'
:从主服务器的SHOW MASTER STATUS
命令获取的值。启动从服务器的复制:
START SLAVE;
在从服务器上执行以下命令来检查主从复制的状态:
SHOW SLAVE STATUS\G
如图连接成功
powered by kaifamiao