首页 > 编程学习 > MySql配置主从同步

MySql配置主从同步

发布时间:2022/10/1 4:16:50

说在前面:

本帖操作环境中的一台master(主)库和slave(从)库都是运行在Windows系统下面的,但是具体步骤和在linux下操作都几乎一样,另外本帖是使用root账号进行主从同步的,如果使用自建账号进行主从同步的话,一定要赋予自建账号“REPLICATION SLAVE”权限,如果读者不需要为主从同步新建账号的话,根据本帖流程操作即可。

1.配置主库,修改master(主)库mysql.ini文件(linux下为*.cnf文件),在[mysqld]字样下面增加下面几行代码:

server-id=1   #数据库服务的唯一标识,一般为主服务器IP的末尾号,但是只要该值在主从数据库中不重复也可以
log-bin=mysql-bin
log-bin-index=master-bin.index

注:这里给出其他可配置写法:

binlog-do-db=wordpres       //wordpress是表示只备份wordpress
binlog_ignore_db=mysql      //表示忽略备份mysql
                            //不加binlog-do-db和binlog_ignore_db,表示备份全部数据库

2.在master(主)库执行命令:

SHOW MASTER STATUS;

看到如下结果(注意保存File值和Position值,在后续从库的配置中需要使用到这两个值。):

注:执行完这个步骤后不要再操作主数据库了,防止主数据库状态值(File值和Position值)变化,如果执行第二步命令后File和Position值为空的话,重新启动下Mysql服务,再执行第2步命令即可。

3.重启master(主)库Mysql服务;

4.配置slave(从)库,在从库Mysql文件中找到mysql.ini文件(linux下为*.cnf文件),在[mysqld]字样下面增加下面几行代码:

server-id=2    #这里的server-id一定不能和整体主从环境中任何一台mysql的server-id重复
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin 

5.重新启动slave(从)库;

6.在从库中执行命令:

change master to master_host='IP地址',    #Master数据库IP
master_port=3306,                        #Master数据库端口号
master_user='root',                      #主从同步的账号,本帖为root账号,如果是为主从同步而新建的账号则改为新建账号
master_password='mysql',                 #‘master_user’对应的账户密码
master_log_file='mysql-bin.000007',     #Master服务器执行‘SHOW MASTER STATUS’命令后产生的File值
master_log_pos=2910;                    #Master服务器执行‘SHOW MASTER STATUS’命令后产生的Position值

7.启动slave,在从库执行命令:

start slave;

8.检查slave(从)库状态,在从库执行命令:

SHOW SLAVE STATUS;

如果“Slave_IO_Running”、和“Slave_SQL_Running”都为“Yes”的话,则说明主从同步没有啥大问题了,可以在主库操作一下,在从库验证了。

如果“Slave_IO_Running”、和“Slave_SQL_Running”有一项为No的话,则需要在纠错,但是笔者经过多次测试,如果按照上面的步骤操作,正常情况下不会出错。

注:

Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件

Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。

9.附带一些主从同步中较常用到的命令(持续更新):

start SLAVE;    #启动从同步
stop SLAVE;     #关闭从同步

Copyright © 2010-2022 mfbz.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号