本文共 2039 字,大约阅读时间需要 6 分钟。
MySQL 主从复制(MySQL Replication)主要用于实时备份、高可用性(HA)以及读写分离等场景。在配置主从复制之前,需要准备两台 MySQL 服务器。
操作系统:CentOS 6.8(64位)
MySQL 版本:5.1.73(主从版本需一致)
使用 yum 运行安装命令
编辑主服务器的 my.cnf 文件:
vim /etc/my.cnf
添加以下配置:
[mysqld]...log-bin=mysql-binserver-id=8
(server-id
可以设置为主服务器的 IP 的最后一位,也可以使用其他唯一标识符)
重启主服务器服务:
service mysqld restart
对于从服务器,只需设置 server-id 即可,无需启用二进制日志:
[mysqld]...server-id=18
重启从服务器服务:
service mysqld restart
为了让从服务器能够通过主服务器获取二进制日志,需要在主服务器上创建专门的复制账号 repl
:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.18' IDENTIFIED BY '123456';Query OK, 0 rows affected (0.00 sec)
执行以下命令,记录主服务器的二进制日志文件名称和当前写入位置:
mysql> SHOW MASTER STATUS;+------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 | 259 | | |+------------------+----------+--------------+------------------+
记录下 File
和 Position
这两个值,在配置从服务器之前不要对主服务器进行任何数据库操作。
在从服务器上执行以下命令:
mysql> CHANGE MASTER TO -> MASTER_HOST="192.168.0.8", -> MASTER_USER="repl", -> MASTER_PASSWORD="123456", -> MASTER_LOG_FILE="mysql-bin.000001", -> MASTER_LOG_POS=248;
启动从服务器的复制服务:
mysql> START SLAVE;Query OK, 0 rows affected (0.00 sec)
验证主从复制是否成功:
mysql> SHOW SLAVE STATUS \G;...Slave_IO_Running: YesSlave_SQL_Running: Yes
如果上述两项均为 "Yes",说明主从复制配置成功。
在主服务器上创建一个数据库或表后,检查从服务器上是否同步了该数据库或表。
转载地址:http://qtbfk.baihongyu.com/