MySQL主从分离读写复制

在高负载的生产环境里,把数据库进行读写分离,能显著提高系统的性能。下面对MySQL的进行读写分离。

试验环境

A机:IP:192.168.0.1 mysql版本:mysql-5.6.4,主数据服务器(只写操作)

B机:IP:192.168.0.2 mysql版本:mysql-5.6.4,从数据服务器(只读操作)

步骤

1.修改主数据库服务器的配置文件,WINDOWS下为my.ini,LINUX下为:my.cnf。我们在配置文件mysqld 区域中加入如下两行:

复制代码
server-id = 1  -- 每个mysql实例各不相同,一般为整数,此处写1

log-bin=mysql-bin  --使用mysql二进制方式进行复制,此步为必须配置.

使用命令,创建用于复制数据的用户backup:

复制代码
mysql> GRANT REPLICATION SLAVE ON *.* TO backup@localhost IDENTIFIED BY '111111';

2.重启主MySQL,输入show master status\G;命令, 显示主数据库服务器的状态:

3.在从数据库服务器的配置文件mysqld中,加入下面两行:

复制代码
server-id = 2  -- 每个mysql实例各不相同,一般为整数,此处写2

log-bin=mysql-bin  --使用mysql二进制方式进行复制.

4.登录从数据库服务器,输入以下命令:

复制代码
mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.0.1',
    -> MASTER_USER='backup',
    -> MASTER_PASSWORD='111111',
    -> MASTER_LOG_FILE='mysql-bin.000003' ---此处对应主服务器状态的FILE
    -> MASTER_LOG_POS=370558;  ---此处对应主服务器状态的Position

5.命令启动从服务器的SLAVE,

复制代码
mysql> start slave;

6.查看从服务器的状态:

复制代码
show slave status\G

注意以下两个状态为YES,表示运行已经正常:

复制代码
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

7.测试,在主数据服务器进行插入、更新、删除数据,查看从服务器的数据。

相关推荐
小张同学a.2 分钟前
zabbix企业级监控平台4——分布式监控与grafana数据可视化
linux·运维·数据库·分布式·信息可视化·zabbix·grafana
渣渣盟4 分钟前
当 Redis 写入不再是瓶颈后,Flink 任务的反压可能来自哪里?如何系统性地定位和解决 Flink 反压问题?
数据库·redis·flink
七牛开发者6 分钟前
Codex 实践系列 Vol.04:用 Goal 和 Plan 管住一个长任务
java·数据库·人工智能·github·copilot
仍然.7 分钟前
服务端高并发分布式结构演进之路
大数据·数据库·redis
MC皮蛋侠客13 分钟前
Redis 系列(三):底层实现(一)——对象系统、SDS 与 dict
数据库·redis·缓存
杜子不疼.16 分钟前
不会SQL也能改数据库?我用NocoDB把MySQL变成了表格界面
数据库·sql·mysql
今天AI了吗22 分钟前
AI辅助数据库工具链对比:从SQL优化到架构设计的主流方案评估
数据库·人工智能·sql
蓝鸟19741 小时前
Oracle 19c JSON_OBJECT 完全实战指南|嵌套、多行多列数组合并、空值踩坑、医保报文落地
数据库·oracle·json_arrayagg·多行转json数组·sql实战踩坑·数据库json拼装·json_object
霸道流氓气质1 小时前
Mysql中慢 SQL 优化实战:减少不必要的 JOIN 关联
sql·mysql·mybatis
晴天161 小时前
Agent 全栈学习笔记 1-Day14
数据库·笔记·学习