MYSQL主从库同步配置过程
为了实现网站数据库的异地备份,采用了MySQL数据库主从同步配置,需要两台服务器分别作为主从库,当主库发生增删改等操作,会实时反映到从库,我的个人服务器配置如下:
主库为centos release 6.7 (final) + mysql 5.5.42,ip为192.168.3.11
从库为centos release 6.7 (final) + mysql 5.5.42,ip为192.168.3.10
数据库内均无数据,关闭主从库的iptables(chkconfig iptables off)。
1、主库配置
修改主库MySQL配置文件/ect/my.cnf:
[mysqld]
log-bin=mysql-bin
server-id=1
#skip-networking
#bind-address
server-id用来标识MySQL数据库,log-bin开启二进制日志,注释掉skip-networking和bind-address。 重启主库MySQL。
2、账号配置
在主库服务器上,新建一个用于同步的账号。
mysql> create user 'user'@'%.domain.com' identified by 'password';
mysql> grant repliction slave on *.* to 'user'@'%.domain.com';
新建的用户user@%.domain.com,赋予slave权限。
3、主库状态
mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000009 | 480 | | |
+------------------+-----------+--------------+------------------+
1 row in set (0.00 sec)
记录下File和Position的值,之后暂时不要操作主库,防止主库状态发生变化。
4、从库配置
修改主库MySQL配置文件/ect/my.cnf:
[mysqld]
log-bin=mysql-bin
server-id=2
注意主从库的server-id不要相同。
将主库信息导入到从库中:
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.3.11',
-> MASTER_USER='usere',
-> MASTER_PASSWORD='password',
-> MASTER_LOG_FILE='mysql-bin.000009',
-> MASTER_LOG_POS=480;
启动从库slave同步:
mysql> start slvae;
5、从库状态
mysql> show slave status;
查看 Slave_IO_Running | Slave_SQL_Running,如果出现的结果是Yes | Yes,说明mysql主从配置成功完成了。
6、验证同步
在主库新建数据库,导入sql脚本后,查看从库也做了相应的改变,说明mysql主从同步成功。
参考资料:
Slaves:https://dev.mysql.com/doc/refman/5.5/en/replication-howto-newservers.html
Mysql主从复制实践手册:http://www.open-open.com/lib/view/open1365687211734.html