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
用于存储中继日志;其他设置与主服务器相同。
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版本而有所不同。请根据实际情况调整。