【数据库优化-MySQL主从分离】主从同步及读写分离

目录

一、主库(master)配置

二、从库(slave配置)

 三、测试主从是否同步


思路:先对主库进行配置,配置成功之后,主库授权从库,然后对从库进行配置,再在从库上设置同步,最后测试。

主服务器ip:192.168.8.102,从服务器ip:192.168.8.103

一、主库(master)配置

1.修改mysql.ini配置文件,在mysqld下添加如下配置,并重启mysql服务

[mysqld]
server-id=1  //主库和从库要不一致
log-bin=mysql-bin
binlog-do-db=mstest_db   //同步数据库,要与从库里配置的数据库名保持一致   可以添加多个

2.验证配置是否成功

a.通过“SHOW VARIABLES LIKE 'server_id';”命令查看

 b.查看主库的状态,其中file和position在从库配置中会用到,注意每次修改主库的mysql.ini文件,file和position参数都会变

 3.授权给从服务器(slave)同步数据的账号密码

GRANT REPLICATION SLAVE ON *.*TO 'root'@'192.168.8.103' IDENTIFIED BY '123456';

参数说明:

  • root:从库连接主库使用的账号
  • IDENTIFIED BY '123456':从库连接主库使用的密码
  • 192.168.8.103:从库服务器ip

主库(master)配置完成

二、从库(slave配置)

1.修改mysql.ini配置文件,在mysqld下添加如下配置,并重启mysql服务

[mysqld]
server-id=2  //与主库不能相同
log-bin=mysql-bin
slave-net-timeout=60  //重连时间
replicate-do-db=mstest_db  //同步数据库  要与主库里配置的数据库名保持一致

说明:将主库中需要同步的数据库导入到从库,也可以新建,但必须保证数据库名、表名、字段名、数据类型全部保持一致,主从数据库保持一致

2.在从服务器上设置同步命令

-- 停止从库
stop slave; 
-- 设置同步 
b.master_host='192.168.8.102',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000009',master_log_pos=1119;
--  开启从库
start slave  

 如果在执行第二步命令时出错“Could not initialize master info structure, more error messages can be found in the MySQL error log”,可以先执行“reset slave;”重置从库命令即可。

3.检测主从是否打通

执行“show slave status”命令,查看“ Slave_IO_Running ”和“ Slave_SQL_Running ”是否都为yes。都为yes即标识主从同步

  

从库(slave)配置完成

 三、测试主从是否同步

主数据库user字段格式如下,从数据库也须与主数据库格式一致

 在主数据库中插入一条数据,并查询

INSERT INTO user (id,name,age) VALUES (null,'aabb',111);

select * from user;

 在主库添加之后,再到从数据库中查看,数据是否同步到从库

select * from user;

 可以看到在主库添加的数据,在从库里也能查询到,说明主从同步成功。

需要注意几点:

  1. 配置主从数据库mysql.ini文件时,同步的数据库要保持一致,两个数据库的表名、字段、类型都要保持一致,最好从主库导出,再导入到从库
  2. 主从库的server-id不能相同
  3. 在从库中设置同步时,如果报错,可以先reset slave重置从库

关于如何在ThinkPHP5运用,可以参看ThinkPHP5分布式数据库读写分离https://blog.csdn.net/qq_25285531/article/details/130356157

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下页、再停留

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值