说明
mysql数据库支持主从数据库集群、主从数据库备份以及主主相互备份。下面主要说一下主主同步备份。所谓主主同步是指两个或以上数据库间时时同步数据,主要作用一个是备份,再一个就是分摊用户并行访问量。配置
假设有两个数据库服务器192.168.0.1和192.168.0.2,
后面用1表示168.0.1,
2表示168.0.2
首先配置1用root进入mysql添加一个授权2可以访问的用户
代码: |
mysql>GRANT all privileges ON *.* TO tongbu@'192.168.0.2' IDENTIFIED BY '123456'; |
退出mysql编辑mysql配置文件
代码: |
vi /etc/my.cnf |
添加或修改以下内容:
代码: |
[client] default-character-set=utf8 [mysqld] default-character-set=utf8 log-bin=mysql-bin server-id=1 master-host=192.168.0.2 master-user=tongbu master-password=123456 master-port=3306 master-connect-retry=30 #断网后间隔30秒重连 binlog-do-db=mysql #要备份的库 replicate-do-db=mysql skip-name-resolve #快速登录跳过用户解析 back_log = 500 max_connect_errors = 100 max_connections=1000 |
重启mysql服务
代码: |
service mysqld restart |
至此1配置完毕,然后配置2,步骤同1
代码: |
mysql>GRANT all privileges ON *.* TO tongbu@'192.168.0.1' IDENTIFIED BY '123456'; |
代码: |
vi /etc/my.cnf |
代码: |
[client] default-character-set=utf8 [mysqld] default-character-set=utf8 server-id=2 master-host=192.168.0.1 master-user=tongbu master-password=123456 master-port=3306 binlog-do-db=mysql replicate-do-db=mysql skip-name-resolve back_log = 500 max_connections = 1000 max_connect_errors = 100 slave_skip_error=1062 sync_binlog=1 #每作一次操作同步一次 log-bin=mysql-bin |
代码: |
service mysqld restart |
至此2也配置完毕
注意:2里面的配置有些不同是因为我把1做为生产库,2只做备份
最后进入1的mysql查看master状态
代码: |
mysql>show master status; |
显示如下:
代码: |
+------------------+----------+--------------+------------------+ | File +------------------+----------+--------------+------------------+ | mysql-bin.000019 | 11809679 | mysql +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) |
我们把file=mysql-bin.000019和position=11809679 记下来
然后进入2的mysql
代码: |
mysql>stop slave; |
代码: |
mysql>change master to master_log_file='mysql-bin.000019',master_log_pos=11809679 |
代码: |
mysql>slave start; |
查看同步备份状态
代码: |
mysql>show slave statusG |
其中的
代码: |
Slave_IO_Running: Yes Slave_SQL_Running: Yes |
都是Yes则已经处于正常同步状态了