您当前的位置:首页 > 互联网教程

mysql 主从如何设置同步

发布时间:2025-05-15 03:26:48    发布人:远客网络

mysql 主从如何设置同步

一、mysql 主从如何设置同步

同步介绍 mysql的主从同步是一个异步的复制过程,从一个 Master复制到另一个 Slave上。在 Master与 Slave之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave端,另外一个线程(IO线程)在 Master端。要实现 MySQL的主从同步,首先必须打开 Master端的BinaryLog(mysql-bin)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。打开 MySQL的 Binary Log可以通过在启动 MySQL Server的过程中使用“—log-bin”参数选项,或者在 my.cnf配置文件中的 mysqld参数组([mysqld]标识后的参数部分)增加“log-bin”参数项。

Mysql主从服务器配置主服务器IP:192.168.1.60从服务IP:192.168.1.61 Linux:centOS Mysql版本:5.1.58以下配置皆在此服务上进行配置

查看主库服务器的my.cnf配置文件,根据mysql安装包、版本不同,相关的路径和配置文件路径会大致不一样,不过大多情况下是一样的。该文件在 etc/目录下。Mysql服务也提供了对不同服务器配置使用不同的配置文件,要使用它们的时候,只需用它们任一一个替换上面的my.cnf文件即可。注:替换文件名必须为my.cnf。 cnf配置文件一般会有四个,可以根据命令# ll/usr/share/mysql/*.cnf查看; my-small.cnf内存少于或等于64M,只提供很少的的数据库服务; my-medium.cnf内存在32M--64M之间而且和其他服务一起使用,例如web; my-large.cnf内存有512M主要提供数据库服务; my-huge.cnf内存有1G到2G,主要提供数据库服务; my-innodb-heavy-4G.cnf内存有4G,主要提供较大负载数据库服务(一般服务器都使用这个);可以根据服务器配置的不同选择不同的cnf配置文件。

配置my.cnf文件采用系统默认的etc/my.cnf配置文件进行配置,对主服务器进行配置主要需要在配置文件中添加以下几项(在添加的时候要确保它们不在文件中存在,因为如选择上面几种不同的配置文件,配置里的内容会不一样,如果没有相应的项,需要添加)。用vi etc/my.cnf打开文件,对文件进行修改,在[mysqld]下面进行添加修改: Server-id= 1#这是数据库ID,此ID是唯一的,主库默认为1,其他从库以此ID进行递增,ID值不能重复,否则会同步出错; log-bin= mysql-bin二进制日志文件,此项为必填项,否则不能同步数据; binlog-do-db= testcreate#需要同步的数据库,如果需要同步多个数据库;则继续添加此项。 binlog-do-db= testcreate1 binlog-do-db= testcreate2 binlog-ignore-db= mysql不需要同步的数据库;至此主服务器配置my.cnf配置完成,保存退出文件。现在对Mysql服务器进行重启:#servicemysqld restart如果重启失败,则证明配置文件错误,需重新检查。建议:对my.cnf修改之前最好对其进行备份,以免配置文件修改失败不能及时重启服务器。

配置完成后需要建立同步用的数据库账户主库需要提供一个账户让从库对起连接并同步,用命令mysql服务器 mysqlgrantreplication slave on*.* to‘testcreate’@’192.168.1.61’ identified by‘123456’;说明:’testcreate’:同步的数据库;‘192.168.1.61’:同步的数据库地址;‘123456’:同步的数据库密码,在从库配置时需要设置。

显示主库信息 mysqlshowmaster status;执行上述命令显示:看到上述信息则表示主库建立成功。

备份数据库(如果从服务器也为新建库,则不需要此操作)备份数据库的方法有很多种:如果在同一局域网可以直接复制数据库,也可以用工具直接进行数据导入。复制数据库用打包的方法:# cd/data转到存放Mysql数据库的路径下# tarcvfz testcreate.tar.gz db/再从数据库中进行复制解压# cd/data# scp192.168.1.61:/data/testcreate.tar.gz#tarxvfz testcreate.tar.gz数据复制完毕;

从库配置从服务器的配置基本与主库配置差不多,选择的从库服务器为:192.168.1.61 1.配置从库服务my.cnf文件# vietc/my.cnf对其进行如下修改: Server-id= 2#这里ID改为2因为主库为1; log-bin= mysql-bin必填项,用于数据同步; master-host= 192.168.1.60主库IP; master-user= test同步用的账户; master-password= 123456同步账户密码,主库时的设置; master-port= 3306同步数据库的端口号。

重启从库服务器#service mysqld restart如果重启失败则配置文件有问题,需重新检查配置。

调整复制过来的数据库的权限(如果有从主库复制过来的数据库)主库复制过来的数据库权限都为root权限,需要修改为mysql权限#chown–R mysql:mysql/var/lib/mysql如果从库是新建的库就不需要进行此步骤

显示从服务器状态进行mysql服务器: mysqlshowslave status\G;显示如图:

如果slave_io_running和slave_sql_running都为yes则表示从服务器配置成功。如果遇到关于position相关的错误,就需要再手动设置以下File/Postion的信息 mysqlChangemaster to master_host=‘192.168.1.60’ master_user=‘test’ master_password=’123456’ master_log_file=’mysql-bin.000001’,主库的文件信息 master_log_pos=’106’;主库的Position信息

二、MySQL配置主从同步、主主同步、多主多从

MySQL的主从同步、主主同步与多主多从配置详解

在MySQL中,数据复制主要分为三种模式:主从同步、主主同步以及多主多从。让我们逐个了解它们的配置方法。

首先,配置主数据库(master)需要设置root账号和密码(如Master123456),并配置相应的同步参数,如查看master_log_file和master_log_pos,通过SHOW MASTER STATUS获取。

接着,配置从数据库(slave)时,将master_log_file和master_log_pos信息导入,确认Slave_IO_Running和Slave_SQL_Running都为yes,代表配置成功。

这种模式下,需要将一个从库升级为主库,原主库变成从库。当在两个主库上同时增加数据时,可能产生相同的主键,需要额外处理以避免冲突。

采用主主同步和主从同步的组合,当master3307和master3308更新时,四个数据库都需要同步。这时,需要分别设置master3307到slave3312的同步,并进行额外的配置管理。

当遇到同步出错时,可以通过命令行工具或者像Navicat这样的图形界面工具,使用“数据传输”功能来解决数据一致性问题。

三、数据库主从同步配置(二十九)

有很多种配置主从同步的方法,可以总结为如下的步

2、在家目录中中创建目录,将mysql的配置文件放到此目录中

3、我们要将docker运行的mysql作为slave来运行,开启前需要修改配置文件。编辑~/mysql_slave/mysql.conf.d/mysqld.cnf文件,修改以下东西:

4、我们让此台mysql运行在8306端口上,且mysql编号为2创建docker容器

5、测试,在ubuntu中使用mysql命令尝试连接docker容器中的mysql

1、

2、mysql show master status为空值: