MySQL数据库实现主从同步(基于MySQL8.0.11)

前言
众所周知,随着用户量的增多,数据库操作往往会成为一个系统的瓶颈所在,而且一般的系统“读”的压力远远大于“写”,因此我们可以通过实现数据库的读写分离来提高系统的性能。

实现思路
通过设置主从数据库实现读写分离,主数据库负责“写操作”,从数据库负责“读操作”,根据压力情况,从数据库可以部署多个提高“读”的速度,借此来提高系统总体的性能。

基础知识

要实现读写分离,就要解决主从数据库数据同步的问题,在主数据库写入数据后要保证从数据库的数据也要更新。


主从数据库同步的实现思路如图: 


主服务器master记录数据库操作日志到Binary log,从服务器开启i/o线程将二进制日志记录的操作同步到relay log(存在从服务器的缓存中),另外sql线程将relay log日志记录的操作在从服务器执行。 
记住这张图,接下来基于这个图实际设置主从数据库。

主从数据库设置的具体步骤

1.在MySQL安装根目录下找到配置文件my.ini

新增如下配置:

server-id=1
log-bin=master-bin
log-bin-index=master-bin.index

2.然后重启MySQL服务

mysql > net stop mysql;
mysql > net start mysql;
-------------------------------------------
或者:
service mysql restart;

3.检查配置效果,进入主库查询:

SHOW MASTER STATUS;

这个file:master-bin.000002我们稍后从数据库的配置会用到

4.配置从服务器的 my.ini

[mysqld]
# 设置3307端口
port=3307
# 设置mysql的安装目录
basedir=F:\MySql\mysql-8.0.11-winx64-slave
# 设置mysql数据库的数据的存放目录
datadir=F:\MySql\data-slave
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 配置主从同步(从服务器)
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8

5.配置完成之后同样重启一下从服务器

6.接下来配置数据库的关联

mysql> create user rep;
mysql> ALTER USER 'rep'@'主库IP' IDENTIFIED BY '123456';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从库IP';
mysql> flush privileges;

这个配置的含义就是创建了一个数据库用户repl,密码是mysql, 在从服务器使用repl这个账号和主服务器连接的时候,就赋予其REPLICATION SLAVE的权限, *.* 表面这个权限是针对主库的所有表的,其中xxx就是从服务器的ip地址。 
进入从数据库后执行:

mysql> change master to master_host='主库IP',master_port=3306,master_user='rep',master_password='123456',master_log_file='master-bin.000002',master_log_pos=0;

这里面的xxx是主服务器ip,同时配置端口,repl代表访问主数据库的用户,

7.上述步骤执行完毕后执行start slave启动配置:

mysql > start slave;

停止主从的命令为

mysql > stop slave;

查看状态命令,\G表示换行查看(\G后面切记不能带“;”)

mysql > show slave status \G

至此,主从同步配置完毕,可以尝试从master库进行写入操作,然后从slave库查看刚刚在主库进行的操作结果。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值