欢迎光临散文网 会员登陆 & 注册

如何搭建读写主从数据库

2023-07-08 15:16 作者:面包枕  | 我要投稿

### 原理

1.主服务器建立二进制日志,每产生语句或磁盘变化写进日志

2.从服务器建立relaylog

3.主服务器创建 授权复制账号,从利用复制账号来监听主服务器的二进制日志

具体原理参考:https://mp.weixin.qq.com/s/8dXHIq3P-kYSgF3o9zhZ8Q



1. 修改主数据库的配置文件my.cnf,如下修改,修改后的重启数据库 

#主数据库的配置

#定义Mysql服务的唯一标识 每个mysql服务Id需唯一

server-id=100

#开启mysql binlog功能

log-bin=mysql-bin

#设置binlog的日志格式,格式分别 statement row mixed。通常使用row

binlog-format=row

#此参数表示只记录指定数据库的二进制日志,默认全部记录。

binlog-do-db=mydatabase

主数据库的配置文件 my.cnf


2. 修改主数据库的配置文件my.cnf,如下修改,修改后的重启数据库 

#从服务器的配置

#定义Mysql服务的唯一标识 每个mysql服务Id需唯一

server-id=200

#启用中继日志,其中mysql-relay表示日志的文件名称,文件存放在datadir参数指向的目录下面

relay-log=mysql-relay

#指定只读

read-only=1

#需要复制的数据库

replicate-do-db=mydatabase

从数据库的配置文件 my.cnf



3.在主数据库创建 授权复制账号

grant replication client,replication slave on *.* to 'repl'@'%' identified by 'r123456';

FLUSH PRIVILEGES;

在主数据库创建复制账号



4.登入主数据库,查看binlog的日志及位置

#查看master的状态看,尤其是当前的日志及位置

show master status;

主数据库的命令行



5.登入从数据库,利用账号复制主数据库的binlog, sql语句

change master to

master_host='172.172.0.10',

master_user='repl',

master_password='r123456',

master_log_file='mysql-bin.000289',

master_log_pos=322;

从数据库的命令行



6.在从数据库上启动复制

start slave; 

在从数据库启动复制



其他:

#查看master的状态看,尤其是当前的日志及位置

show master status;

#查看从服务器状态

show slave status;

#启动从服务器状态(开始监听master的变化)

start slave; 

#停止slave状态

stop slave;

#重置从服务器 的状态

reset slave;

如何搭建读写主从数据库的评论 (共 条)

分享到微博请遵守国家法律