mysql主从数据库配置条件_mysql主从数据库的配置

MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。

1.主从数据库同步数据原理:

Mysql主从复制的实现原理图大致如下(来源网络):

73e75c6abd6c

mysql主从配置原理图

主数据库更改数据库时,会将更改写入一个二进制文件。从数据库会启动一个I/O线程,读取二进制文件,将读取到的内容写入日个relay log的文件中。从数据库还会启动一个sql线程,读取relay log中的内容,根据读取到的内容,更改从数据库的内容,从而实现主数据库的修改从数据库实时更新的功能。

2.主从数据库同步的基本操作

主从数据库同步功能是mysql自带的,在这里我们只要进行一些配置就行了。我的系统是windows 10,mysql版本是8.0.16。

a.修改mysql配置文件my.ini

我在本地windows上启动了两个mysql服务,具体方法请参考我的另一篇简书

https://www.jianshu.com/p/99f16e7bdd82

找到两个服务的安装目录下的my.ini的配置文件,进行修改。

主数据库的配置文件修改如下:

[client]

port=3307

[mysqld]

server-id=1

### 启用二进制日志(必须)

log-bin=master-bin

log-bin-index=master-bin.index

basedir="D:\\softwareinstall\mysql2\mysql-8.0.16\mysql-8.0.16-winx64"

datadir="D:\\softwareinstall\mysql2\mysql-8.0.16\mysql-8.0.16-winx64\data"

port=3307

max_connections=200

character-set-server=utf8

default-storage-engine=INNODB

从数据库的配置文件修改如下:

[client]

### 端口号一定要修改,默认为3306,因为另一个服务已经占用该端口,所以这里必须修改。

port=3308

[mysqld]

server-id=2

##从数据库的配置

relay-log-index=slave-relay-bin.index

relay-log=slave-relay-bin

#存放数据的地址设置为自己解压目录的地址

#basedir为mysql安装文件夹绝对路径,也就是解压后的文件夹绝对路径

basedir="D:\\softwareinstall\mysql3\mysql-8.0.16-winx64"

#datadir存放的是数据库数据,也就是解压后的文件夹里面的data文件夹绝对路径

datadir="D:\\softwareinstall\mysql3\mysql-8.0.16-winx64\data"

### 端口号一定要修改,默认为3306,因为另一个服务已经占用该端口,所以这里必须修改。

port=3308

max_connections=200

character-set-server=utf8

default-storage-engine=INNODB

配置完成之后,重启两个mysql服务。

b.在主库上授权slave。

CREATE USER 'repl'@'127.0.0.1' IDENTIFIED WITH 'mysql_native_password' BY '123456';

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1';

FLUSH PRIVILEGES;

以上代码的意思是先创建一个全局user,接着授权给该用户slave权限。

在这里有一点需要特别注意: mysql8.0之后创建用户必须要选择一个加密方式,为了兼容以前的配置,建议大家使用mysql_native_password的加密方式。

登陆主服务器,执行

show master status;

查询master的状态,如下:

73e75c6abd6c

查询master的状态

c.配置从服务器Slave

从数据库执行两条指令

change master to master_host='127.0.0.1',master_port=3307,master_user='repl',master_password='123456',master_log_file='master-bin.000002',master_log_pos=0;

start slave; // 启动服务复制功能

其中用户信息要求与自己创建时的用户信息一致,master_log_file的值就是show master status时查询到的file。

执行

show slave status\G // 查询从服务器状态

查看从数据库状态。

至此,mysql主从数据库配置成功了!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值