MySQL主从复制配置涉及以下几个步骤:
-
安装并启动MySQL服务器 确保在主服务器和从服务器上都已经安装了MySQL,并确保MySQL服务正在运行。
-
配置主服务器 在主服务器上,编辑my.cnf(或my.ini)配置文件,通常位于 /etc/mysql/ 或 /etc/ 目录下。需要添加或修改以下设置:
[mysqld] server-id=1 log_bin=mysql-bin binlog_do_db=<需要复制的数据库名> binlog_format=mixed
这里,server-id
是一个唯一的数字ID,用于区分主从服务器;log_bin
用于启用二进制日志;binlog_do_db
指定需要复制的数据库;binlog_format
设置为mixed模式,表示支持不同类型的事务。
- 创建复制用户 在主服务器上,创建一个专门用于复制的用户,并授予必要的权限:
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%'; FLUSH PRIVILEGES;
- 重启主服务器 保存配置文件更改后,重启主服务器以应用新设置:
sudo service mysql restart
- 导出数据并创建一个新的数据库
在主服务器上,使用
mysqldump
工具导出需要复制的数据库:
mysqldump -u root -p <需要复制的数据库名> > database.sql
将生成的database.sql文件传输到从服务器。
- 配置从服务器 在从服务器上,导入主服务器导出的数据库:
mysql -u root -p <需要复制的数据库名>< database.sql
然后,编辑从服务器的my.cnf(或my.ini)配置文件,添加以下设置:
[mysqld] server-id=2 relay_log=relay-bin log_bin=mysql-bin replicate_do_db=<需要复制的数据库名>
这里,server-id
是一个唯一的数字ID,用于区分主从服务器;relay_log
用于存储中继日志;其他设置与主服务器相同。
- 设置主服务器信息 在从服务器上,连接到MySQL,设置主服务器信息:
CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='repl_user', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', -- 从主服务器上show master status获取 MASTER_LOG_POS= 154; -- 从主服务器上show master status获取
- 启动从服务器复制 在从服务器上,启动从服务器复制进程:
START SLAVE;
- 查看从服务器状态 使用以下命令查看从服务器复制状态:
SHOW SLAVE STATUS\G;
如果 Slave_IO_Running
和 Slave_SQL_Running
状态为"Yes",则表示主从复制配置成功。
注意:以上步骤可能因操作系统和MySQL版本而有所不同。请根据实际情况调整。