vlambda博客
学习文章列表

MySQL使用Replication实现主从同步复制

1. 介绍

1.1 介绍

福哥今天打算给大家讲一讲MySQL的Replication功能,使用Replication功能来实现主机和从机同步复制数据,可以实现主机到从机的数据的实时同步,通过从机可以分担主机的读压力,提高系统性能。

2. 配置

配置文件里面必须包含的参数包括:

  • server_id

  • log-bin

  • binlog-do-db

  • auto_increment_increment

  • auto_increment_offset

配置文件里面可选的参数包括:

  • expire_logs_days

  • max_binlog_size

  • binlog-format

  • slave-skip-errors

配置文件里面的server_id必须是唯一的,也就是说每个MySQL实例都必须设置一个唯一的server_id。

2.1 主机

这是主机的配置文件。

server_id=131415001log-bin=mysql-binbinlog-do-db=testexpire_logs_days=10max_binlog_size=1Gbinlog-format=rowauto_increment_increment=2auto_increment_offset=1slave-skip-errors=all

2.2 从机

这是从机的配置文件。

server_id=131415002log-bin=mysql-binbinlog-do-db=testexpire_logs_days=10max_binlog_size=1Gbinlog-format=rowauto_increment_increment=2auto_increment_offset=2slave-skip-errors=all

3. 授权

为了方便福哥的grant语句面对任意客户端开放了,大家实际使用环境可以根据自己的情况设置授权客户端主机,或者通过网络端口控制客户端访问。

3.1 主机

主机添加授权同步用户sync_user。

grant replication slave, replication client on *.* to sync_user@`%` identified by 'sync_pass';

4. 操作

4.1 停止从机同步

首先避免出现问题,我们先要把从机从其他主机同步的进程停止了。

stop slave;

4.2 设置从机同步参数

设置从机从那个主机同步,包括主机、端口、用户名、密码等等。

change master to master_host = 'hostA', master_port = 3306, master_user = 'sync_user', master_password = 'sync_pass';

4.3 从主机导出同步数据

现在从主机导出一份完整的数据,记得增加锁表参数避免数据差异。

mysqldump -uroot -pabcdef -h hostA test > test-utf8-210717.sql --default-character-set=utf8 --extended-insert=false --master-data --lock-all-tables

4.4 导入同步数据导从机

主机导出的数据传到从机上面,将数据导入进来。

4.4.1 重新创建test库

如果从机没有test库就创建它,如果从机有test库就先删除了再重写创建它。

drop database if exists test;create database test default charset utf8;

4.4.2 导入数据到test库

从机上面导入同步数据到test库。

mysql -uroot -pabcdef -h hostB test < test-utf8-210717.sql --default-character-set=utf8

4.5 完成主机到从机的同步

现在到从机上面执行启动同步命令。

start slave;

5. 测试

5.1 测试主机到从机

主机上面插入一条数据。
从机上面可以看到这条数据。
MySQL使用Replication实现主从同步复制

6. 总结

今天福哥带着童鞋们学习了使用MySQL的Replication功能实现了一台主MySQL服务器和一台从MySQL服务器之间同步复制数据的功能配置,主从同步复制数据可以在一定程度上缓解数据库的读压力,提高系统性能。








免费看文章,自己学技术




每一篇文章都是福哥一个字一个字地敲出来的,都是福哥原创的。

每一篇文章都是经过了福哥的反复验证的,都是可以正常使用的。