MYSQL主从库同步配置过程

时间:2021-08-04 17:35:36

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