为了实现网站数据库的异地备份,采用了MySQL数据库主从同步配置,须要两台服务器分别做为主从库,当主库发生增删改等操做,会实时反映到从库,个人我的服务器配置以下:html
主库为centos release 6.7 (final) + mysql 5.5.42,ip为192.168.3.11mysql
从库为centos release 6.7 (final) + mysql 5.5.42,ip为192.168.3.10sql
数据库内均无数据,关闭主从库的iptables(chkconfig iptables off)。数据库
修改主库MySQL配置文件/ect/my.cnf:centos
[mysqld] log-bin=mysql-bin server-id=1 #skip-networking #bind-address
server-id用来标识MySQL数据库,log-bin开启二进制日志,注释掉skip-networking和bind-address。 重启主库MySQL。服务器
在主库服务器上,新建一个用于同步的帐号。markdown
mysql> create user 'user'@'%.domain.com' identified by 'password'; mysql> grant repliction slave on *.* to 'user'@'%.domain.com';
新建的用户user@%.domain.com,赋予slave权限。dom
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的值,以后暂时不要操做主库,防止主库状态发生变化。ide
修改主库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;
mysql> show slave status;
查看 Slave_IO_Running | Slave_SQL_Running,若是出现的结果是Yes | Yes,说明mysql主从配置成功完成了。
在主库新建数据库,导入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