Mysql配置主从关系

版权声明:write by DGHxj https://blog.csdn.net/DGHxj_/article/details/83997320

配置主服务器(开启二进制日志文件)

编辑主master服务器配置文件/etc/my.cnf

在[mysqld]节点下加入两句话

server-id=1

log-bin=mysql-bin        #启用二进制日志;

重启服务:service mysql restart

在启动或者重启mysql服务的过程中会有一些常见问题,可以参考附录3--mysql常见问题解决(云主机不太可能出现,待补充)

登录mysql:mysql –uroot -proot

查看主节点的二进制文件(名称),position的值,为从节点挂接主节点准备数据;

mysql>flush tables with read lock;   #数据库锁表,不让写数据;这步骤可不做

对于当前环境的mysql无需使用lock命令,因为没有人操作,但是生产环境中必须这样做

mysql>show master status;    #查看MASTER状态(这两个值File和Position)其中的file就是二进制文件,position记录当前操作sql的步骤数(注意一条sql包含多步,所以不是sql语句的条数)

mysql>unlock tables;        #从启动好后,记得要解除锁定

主数据库到此配置完毕

配置从服务器

修改/etc/my.cnf增加一行

server-id=2

:重启服务

service mysql restart

通过mysql命令配置同步日志的指向:(类似于redisslaveof挂接主从)

mysql>change master to master_host='106.75.74.254', master_port=3306,

master_user='root',master_password='root',

master_log_file='mysql-bin.000001',

master_log_pos=120;

master_host        主服务器的IP地址

master_port        主服务器的PORT端口

master_log_file    和主服务器show master status中的File字段值相同

master_log_pos        和主服务器show master status中的Position字段值相同

mysql>start slave;                #stop slave;停止服务,出错时先停止,再重新配置

mysql>show slave status\G;        #查看SLAVE状态,\G结果纵向显示。必须大写,这个命令无法再sqlyog中使用

service mysql restart        #重启服务

 

注意:如果出错,可以看后面的错误信息。观察Slave_SQL_Running_State字段,它会记录详细的错误信息

 

测试同步状态

案例1:在主中创建表格,插入数据

观察从

案例2:将从节点中插入数据,然后在主里继续添加数据

观察主,从状态

案例3:对第二个案例的数据在主中进行变更,

观察从

由于第二步操作主从结构失效

 

这是发现没法同步,调用show slave status 发现已经报错

sql线程已经不工作了

id为3的重复,在从中有数据了

 

重新挂接(不能够轻易的在单机热备的从节点中操作写

错误数据必须清除或者调整正确否则继续主从失效

查看主节点中的二进制文件名称 pos

停止从节点的从状态

stop slave

show master status;

在从节点中把查询出来的最新数据放到命令里挂接主节点

启动从节点的slave

start slave

但是这个时候发现id为3的对应b1字段的值没有改

 

所以mysql虽然支持主从关系但是并没有维护读写分离的状态

Mysql的双机热备

      

搭建步骤

按照主从的关系将新的主从挂接

1 开启主节点二进制

2 查看主节点的二进制文件名称和position

3 在从节点挂接

4 启动从节点的线程

start slave

5 测试,将其中任何一个宕机,在另外一台服务器写入新的数据,观察宕机启动的数据库中有没有宕机期间的更新数据-->有,双机热备

 

猜你喜欢

转载自blog.csdn.net/DGHxj_/article/details/83997320
今日推荐