MySQL数据同步的实现方式之主从复制

MySQL数据同步的实现方式之主从复制_第1张图片

MySQL数据库同步复制的功能主要体现在它的配置文件(liunx 下为/etc/my.cnf)上,其工作原理为slave端记录并且执行master端的操作日志。

一. 准备工作

需要准备2台主机,一台作为主服务器master,一台作为从服务器slave,信息如下:

主服务器:IP 10.0.10.21 / MySQL版本 5.5

从服务器:IP 10.0.10.22 / MySQL版本 5.5

注意:主从服务器的mysql版本最好保持一致。

二. 主服务器配置

1. 创建复制用户

单独新建一个用户,给其分配replication slave权限,该用户主要是给从服务器用的,从服务器slave会使用该用户连接到主服务器master。

echo "grant replication slave on *.* to '用户名'@'从服务器IP' identified by '密码';" | mysql -uroot -padmin

echo "flush privileges;" | mysql -uroot -padmin

其中,root和admin分别是管理员帐号和密码。

2. 编辑/etc/my.cnf文件

在/etc/my.cnf配置文件中加入如下配置项:

#服务器唯一标识

server-id=1

#需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可

binlog-do-db=db_test

#启动二进制日志系统,此处最好为绝对路径

log-bin="D:/dev/MySQL/MySQL Server 5.5/datalog/log-bin.log"

#是否跳过错误,继续执行复制操作(可选)

slave-skip-errors=all

#函数同步

log-bin-trust-function-creators=1

#确保binlog日志写入后与硬盘同步

sync_binlog=1

3. 重启数据库

service mysqld restart

4. 查看参数

执行以下命令,SHOW MASTER STATUS;记住File和Position两个参数值,从服务器上会用到。

MySQL数据同步的实现方式之主从复制_第2张图片

注意:主服务器重启后,这两个参数值会变动, 从服务器会自动同步这两个参数信息。

三. 从服务器配置

1. 编辑/etc/my.cnf文件

在/etc/my.cnf配置文件中加入如下配置项:

#服务器唯一标识

server-id=2

#需要同步的数据库

replicate-do-db=db_test

#忽略错误

slave-skip-errors=all

#同步时间间隔

slave-net-timeout=60

2. 重启数据库

service mysqld restart

3. 开启同步

命令行进入mysql,输入授权命令:

stop slave;

change master to master_host='主服务器ip',master_user='连接主服务器的用户',master_password='连接主服务器的密码',master_log_file='对应主服务器上File参数值', master_log_pos=对应主服务器上Position参数值;

输入命令start slave;,开启slave同步功能。

4. 查看同步状态 

命令行输入以下命令:

SHOW SLAVE STATUS;

至此,MySQL的主从复制就配置完成了。

注意:mysql的主从同步方式为增量同步,所以对于主库上原有的数据,需要手动复制到从库上。

你可能感兴趣的:(MySQL数据同步的实现方式之主从复制)