mysql主从同步方式(mysql主从同步实现)

主从同步的定义

主从同步允许您将数据从一个数据库服务器复制到另一个数据库服务器。 复制数据时,一个服务器作为主服务器(master ),其余的服务器作为从服务器(slave )。 由于复制是异步进行的,从服务器不需要总是连接到主服务器,从服务器也可以通过拨号间歇地连接到主服务器。 配置文件允许您指定所有数据库、数据库甚至数据库上的表的复制。

使用主同步的好处:

通过增加从服务器来提高数据库性能,在主服务器上执行写入和更新,在从服务器上向外部提供读取功能,可以动态调整从服务器的数量,从而调整数据库的整体性能。

提高数据的安全性。 数据被复制到从服务器,从服务器可以结束复制过程,因此可以在从服务器上进行备份,而不会破坏主服务器的对应数据

通过在主服务器上生成实时数据,在从服务器上分析数据,提高主服务器的性能

主从同步的机制

Mysql服务器之间的主从同步基于二进制记录机制。 主服务器使用二进制日志记录数据库的更改,并从服务器读取和运行该日志文件,以保持与主服务器的数据完整性。

使用二进制日志可以记录主服务器的所有操作,并从服务器接收日志的副本。 服务器可以指定要在日志中执行哪种类型的事件。 例如,只插入数据或只更新数据。 缺省情况下,将执行日志中的所有语句。

各从服务器记录二进制日志的相关信息。 文件名和处理的语句。 也就是说,不同的从服务器可以分别执行同一二进制日志的不同部分,从服务器可以随时连接或断开连接。

主服务器和每个辅助服务器必须具有唯一的标识号。 另外,每个从属服务器都必须使用CHANGE MASTER TO语句设置要连接的主服务器的ip地址、日志文件名和日志中的位置。 这些信息存储在主服务器上

配置主从同步的基本步骤

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

在主服务器上,必须打开二进制记录机制并设置独立的ID

在每个从属服务器上,设置唯一的ID并创建帐户以复制主服务器上的数据

在开始复制过程之前,在主服务器上记录二进制文件的位置信息

如果在启动复制之前数据库中已经存在数据,则必须创建数据快照。 可以使用mysqldump导出数据库或直接复制数据文件

设置从站服务器连接的主服务器的IP地址和登录权限、二进制日志的文件名和位置

详细配置主从同步的方法

主机和从机的id可以自己指定。 在虚拟机Ubuntu中将MySQL作为主服务器,在Windows中将MySQL作为从服务器。 在安装主从设备之前,必须确保Ubuntu和Windows之间的网络连接。

将主服务器的原始数据备份到从服务器

在设置主服务器和从服务器的同步之前,如果主服务器上已经有大量的数据,可以使用mysqldump备份数据,然后恢复到从服务器进行数据复制。

在主服务器的Ubuntu中进行备份,然后执行命令:

mysqldump-uroot-p MySQL–全部数据库- -锁定-全部表~~/主数据库. SQL

说明

-u :用户名

-p :表示密码

所有数据库:导出所有数据库

lock-all-tables :在操作过程中锁定所有表,防止数据在操作过程中发生更改

~/master_db.sql :您可以指定导出的备份数据(sql文件)的位置

从服务器恢复Windows上的数据

找到Windows上的mysql命令的位置

可以运行mysql命令的新命令窗口,例如在Ubuntu终端上运行的命令

如果将从主服务器的Ubuntu导出的文件复制到服务器的Windows中,则可以将其放置在与上面的mysql命令相同的文件夹中,以便于恢复和使用

在刚打开的命令黑窗口中执行还原操作:

mysql –uroot –pmysql < master\_db.sql

配置主服务器master(Ubuntu中的MySQL)

编辑设置mysqld的配置文件,设置log_无奈的小甜瓜和server-id

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

重启mysql服务

sudo service mysql restart

登入主服务器Ubuntu中的mysql,创建用于从服务器同步数据使用的帐号

mysql –uroot –pmysql GRANT REPLICATION SLAVE ON \*.\* TO 'slave'@'%' identified by 'slave'; FLUSH PRIVILEGES;

获取主服务器的二进制日志信息

SHOW MASTER STATUS;

File为使用的日志文件名字,Position为使用的文件位置,这两个参数须记下,配置从服务器时会用到

配置从服务器slave(Windows中的MySQL)

找到Windows中MySQL的配置文件

编辑my.ini文件,将server-id修改为2,并保存退出。

重启mysql服务

进入windows的mysql,设置连接到master主服务器

change master to master\_host='10.211.55.5', master\_user='slave', master\_password='slave',master\_log\_file='mysql-无奈的小甜瓜.000006', master\_log\_pos=590;

注:

master_host:主服务器Ubuntu的ip地址

master_log_file: 前面查询到的主服务器日志文件名

master_log_pos: 前面查询到的主服务器日志文件位置

开启同步,查看同步状态

测试主从同步

在Ubuntu的MySQL中(主服务器)创建一个数据库

在Windows的MySQL中(从服务器)查看新建的数据库是否存在

本文转载自:https://www.cnblogs.com/looyee/articles/16384469.html

鲸之声为您拼命加载中...