网站首页 > 文章中心 > 其它

关于mysql主从怎么同步的信息

作者:小编 更新时间:2023-09-06 11:28:44 浏览量:89人看过

请问Mysql主从同步问题

mysql主从同步的步骤

第一段:主机环境

主机:

从机:

第二段:创建数据库

分别登录master机和slave机的mysql:mysql –u root –p

创建数据库:create database repl;

第三段:master机和slave机的相关配置

①.、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下

在[mysqld]配置段添加如下字段

server-id=1

log-bin=mysql-bin

binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库

binlog-ignore-db=mysql //被忽略的数据库

在master机上为slave机添加一同步帐号

重启master机的mysql服务:service mysqld restart

用show master status 命令看日志情况

mysqlshow master status;

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

①. row in set (0.00 sec)

同样在[mysqld]字段下添加如下内容

master-user=repl

replicate-do-db=repl //同步的数据库,不写本行 表示 同步所有数据库

然后重启slave机的mysql

在slave机中进入mysql

mysqlstart slave;

mysqlshow slave status\G;

如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功.

这时 再执行show slave status\G

如何配置两个MySQL数据库之间的主从同步功能?

在IP设置完成以后,需要确定两主机的防火墙确实已经关闭.可以使用命令service iptables status查看防火墙状态.如果防火墙状态.

为仍在运行.使用service iptables stop来停用防火墙.如果想启动关闭防火墙,可以使用setup命令来禁用或定制.最终以两台主机可以相互ping通为佳.

增加一个用户同步使用的帐号:

增加一个数据库作为同步数据库:create database test;

修改配置文件:修改A的/etc/my.cnf文件.

在my.cnf配置项中加入下面配置:

server-id = 1 #Server标识

log-bin

binlog-do-db=test #指定需要日志的数据库

重起数据库服务:

service mysqld restart

查看server-id:

show variable like 'server_id'.

如何实现两个mysql数据库之间的主从同步?

配置主的配置文件

vi /etc/my.cnf

创建复制用户并授权给从服务器

重启主服务器的MySQL ?/etc/init.d/mysqld restart

查看master信息: 进入MySQL ?show master status \G;

修改从库配置文件

重启从服务器MySQL,进入MySQL

指定主服务器IP等信息

启动slave ?:start slave;

查看slave状态:show slave status \G;

报错Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work

意思是主和从必须都要有不同的uuid,我们分别去查看下主从的uuid

可以看出是真的一样,原因在于 我是先安装了一个虚拟机并装好MySQL,后面有复制了一遍,作为从服务器,所以导致了这个UUID是一样的.

此时此刻呢就是解决这个UUID问题,将从库上的auto.cnf 备份下.然后重启从库.再看下从库的UUID

[auto]

再次查看从库状态

从库状态正常了

①.1.测试主从是否正常

主库上创建一个测试库,test :create database test;

创建测试表:

create table test.test(

id int,

username varchar(10)

)ENGINE='innodb'

正常,说明主从搭建成功

mysql 开启主从同步

使用master状态

show master status; 记录file和position的值

在[mysqld]配置段添加如下字段,

连接slave,在mysql命令行执行以下命令,设置参数,启动slave

MASTER_LOG_FILE 对应master的status的file

MASTER_LOG_POS 对应master的status的position

主要查看Slave_IO_Running和Slave_SQL_Running 两列是否都为YES

配置mysql主从 数据库怎么同步过来

主从数据库同步 可以参考如下:

第一段: 概述

第二段: 环境

设备环境:PC(或者虚拟机)两台

第三段: 配置

数据库同步复制功能的设置都在MySQL的配置文件中体现,MySQL的配置文件(一般是my.cnf):在本环境下为/etc/my.cnf.

IP的设置:

在IP设置完成以后,需要确定两主机的防火墙确实已经关闭.可以使用命令service iptables status查看防火墙状态.如果防火墙状态为仍在运行.使用service iptables stop来停用防火墙.如果想启动关闭防火墙,可以使用setup命令来禁用或定制.

最终以两台主机可以相互ping通为佳.

、增加一个用户同步使用的帐号:

、增加一个数据库作为同步数据库:

create database test;

、创建一个表结构:

、修改配置文件:

修改A的/etc/my.cnf文件,在my.cnf配置项中加入下面配置:

server-id = 1 #Server标识

binlog-do-db=test #指定需要日志的数据库

、重起数据库服务:

show variable like 'server_id';

实例:

mysql show variables like 'server_id';

+---------------+-------+

| Variable_name | Value |

| server_id | 1 |

、用show master status/G命令看日志情况.

正常为:

mysql show master status/G

*************************** 1. row ***************************

Binlog_Do_DB: test,test

Binlog_Ignore_DB:

修改B的/etc/my.cnf文件,在my.cnf配置项中加入下面配置:

master-user=backup #同步用户帐号

replicate-do-db=test #告诉slave只做backup数据库的更新

show variables like 'server_id';

、用show slave status/G命令看日志情况.

mysql show slave status/G

Slave_IO_State: Waiting for master to send event

Master_User: backup

Master_Log_File: mysqld-bin.000001

Relay_Master_Log_File: mysqld-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: test,test

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

①. row in set (0.01 sec)

分别使用insert, delete , update在A主机进行增删改查数据库;查看B主机的数据库是否与A主机一致;若一致,则配置成功.

如果在A主机加入slave设置,在B主机加入master设置,则可以做B-A的同步.

、在A主机的配置文件中 mysqld配置项加入以下设置:

master-user=backup

replicate-do-db=test

master-connect-retry=10

、在B的配置文件中 mysqld配置项加入以下设置:

binlog-do-db=test

注意:当有错误产生时,*.err日志文件同步的线程退出,当纠正错误后,要让同步机制进行工作,运行slave start.

重起A、B机器,则可以实现双向的热备份.

第四段: 常见问题及解决

、Slave机器的权限问题,不但要给slave机器File权限,还要给它REPLICATION SLAVE的权限.

、在修改完Slave机器/etc/my.cnf之后,slave机器的mysql服务启动之前,记得要删除掉master.info

、在show master status或着show slave status不正常时,看看.err是怎样说的.

、启动slave,命令用start slave;重新启动用restart slave

以上就是土嘎嘎小编为大家整理的关于mysql主从怎么同步的信息相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章