您的位置:首页 > 数据库 > MySQL

mysql(4)-主从复制

2017-11-08 17:48 155 查看
本次配置两台数据库服务器主从

192.168.72.133作为主服务器

192.168.72.129作为从服务器

1.说明

mysql复制的有点包括3各方面:

1.如果主服务器出现问题,可以快速切换到从服务器提供服务;

2.可以在从服务器执行查询操作,降低主服务器的压力;

3.可以在服务器上执行备份,以避免备份期间影响主服务器的服务性能。

一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询,实时性要求高的数据仍要从主服务器获取。

2.主服务配置

1.给从服务器设置授权用户

grant

2.修改主服务器的配置文件my.cnf,开启binlog,并设置server-id的值。

log-bin=mysql-bin

server-id=1

3.在主服务器上设置读锁定有效,确保没有数据库操作,以便获得一个一致性的快照

flush tables with read lock

4.查看主服务器上当前二进制日志文件名和偏移量值

show master status

5.主服务器停止更新操作,生成主数据库的备份

6.数据库备份完毕之后,主数据库可以恢复写操作,剩下的操作只需要在从服务器上执行

unlock tables

7.把主数据库的一致性备份恢复到从数据库上,把备份的压缩包解压到相应的目录即可。

3.从服务器配置

修改数据库的server-id,server-id的值必须是唯一的不能和主服务器的配置相同,如果有多个从服务器,每个从服务器必须有自己的server-id值。

4.主从配置

192.168.72.133主服务/etc/my.cnf文件添加

log-bin=mysql-bin开启binlog日志

server-id=1

这里还有很多的配置,如同步哪些数据等。



主服务授权从服务的用户user1(具体操作详见mysql(1)-用户授权文章)



192.168.72.129从服务

配置

log-bin=mysql-bin开启binlog日志

server-id=2每个服务独立

master-host为主服务器的ip

master-user为主服务器授权用户

master-password为主服务器授权用户的登录密码

master-port为主服务器端口号



配置完成后,重启两个mysql服务器。

5.主从演示

从服务器操作

show slave status\G

查看从服务器的状态



Slave_IO_Running:Yes

Slave_SQL_Running:Yes

表示配置成功

Connect_Retry:60表示每60秒会从133服务器同步一次log日志

主服务器创建hadoop1_test1表,插入一条数据:



从服务器查看数据表,hadoop1_test1已经创建:



从服务器查看数据表数据,数据也已经同步:



主服务器刷新binlog日志,最新的日志为mysql-bin.000007



从服务器同步的binlog日志信息也会变更为mysql-bin.000007



但是从服务器自己生成的binlog日志不一定和主服务器的一致,如此处从服务器自己的binlog日志为mysql-relay-bin.000012

上面是从服务器是通过配置文件的形式进行设置的,也可以动态的去设置这些配置:

mysql>stop slave;

mysql>change master to master_host = ‘192.168.72.133’,

master_user = ‘user1’,

master_password = ‘1234’,

master_port = 3306,

master_log_file = ‘mysql-bin.000001’,

master_log_pos = 120;

mysql>start slave;

mysql>show slave status;

6.注意问题

笔者曾经遇到一个问题,在配置从服务器配置文件的时候配置的不对,如:将192.168.72.133配置成了192.168.72.129。



这样导致查看状态的时候出现问题,于是去修改/etc/my.cnf为正确的ip地址,然后重启mysql服务,查看状态,仍然显示错误的ip。当时以为是缓存问题,甚至重启了服务器,仍然无效。后来查了一些资料,发现之前的操作都不对,mysql提供了修改配置的命令:





最后搭建成功

失败乃成功之母
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql