MySql数据库读写分离部署及配置详细手册

目录

一、版本说明

二、 MySql安装

三、读写中间件安装

六、程序配置

七、注意事项


一、版本说明

序号名称版本
1mysql5.7.32
2maxscale2.5.15
  • 建议在新环境实施

二、 MySql安装

  1. 删除系统自带mariaDB旧包查看已经安装的rpm包

rpm -qa | grep -i mariadb 

2. 根据查询结果,删除已经安装的旧包

rpm -e rpm旧包名称
  1. 查看是否有mariaDB遗留配置文件或者文件目录,如果有一并用 rm -rf 删除

whereis mariadb
  1. 删除系统已有MySql(如果此数据库已正在使用请卸载前备份)

  2. 查看已经安装的rpm包

rpm -qa | grep -i mysql
  1. \2. 根据查询结果,删除已经安装的旧包

rpm -e rpm旧包名称
  1. 查看是否有MySql遗留配置文件或者文件目录,如果有一并用 rm -rf 删除

whereis mysql
  1. 安装MySql数据库

rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm
  1. 查看初始密码

grep "password" /var/log/mysqld.log| more
  1. 修改初始密码及授权远程访问

mysql -uroot -p
mysql> use mysql
mysql> flush privileges;
mysql> grant all privileges on *.* to 'root'@'%' identified by 'CM@Mysql201' with grant option;
mysql> flush privileges;
mysql> quit
  1. 在主数据库添加主从同步账号

mysql> GRANT all privileges ON *.* TO 'slave'@'%' IDENTIFIED BY 'CM@Mysql201' WITH GRANT OPTION;
mysql> flush privileges;
mysql> quit
  1. 修改主数据库配置文件

  2. 默认MySql配置文件路径 /etc/my.cnf主要参数修改如下

# 指定全局唯一服务器ID,ID范围1~65536的任意一个值,但不能重复
server-id = 1
log-bin = mysql-bin
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
binlog_ignore_db = sys
binlog_format = ROW
  1. 修改从数据库配置文件

  2. 默认MySql配置文件路径 /etc/my.cnf

# 指定全局唯一服务器ID,ID范围1~65536的任意一个值,但不能重复
server-id =2
read-only=ON
log-bin=bin-log
  1. 查看主数据库状态

show master status;
  1. 显示类似如下结果,主要注意File、Position参数值,后面做同步的时候会用到

  1. 在从服务器配置主服务器

change master to master_host='10.134.29.201',master_user='slave',master_password='CM@Mysql201',master_log_file='mysql-bin.000004',master_log_pos=953283316; 
  • 然后启动slave

start slave;
  • 通过语句查看从数据库状态

mysql> show slave status;
  • 显示类似如下信息则说明设置完成

三、读写中间件安装

  1. 到官方网站对应的版本或者到我整理的网盘下载部署的包文件

  2. 链接:https://pan.baidu.com/s/1y6o_T4R7TRHURNxQEp9n4Q 
    提取码:rann

  3. 把下载的文件上传到服务器相应的文件目录,如:/opt/package

  4. 执行安装命令

sudo rpm -ivh maxscale-2.5.15-1.rhel.7.x86_64.rpm
  1. 修改配置文件参数,主要修改存储路径、访问端口号、及内存大小限制默认maxscale.cnf路径/etc/maxscale.cnf主要参数修改如下,注意把服务器、账号信息配置为前面创建的账号

[maxscale]
threads=auto
admin_host=0.0.0.0
admin_secure_gui=false
​
[server1]
type=server
address=10.134.29.201
port=3306
protocol=MySQLBackend
[server2]
type=server
address=10.114.30.72
port=3306
protocol=MySQLBackend
​
[MariaDB-Monitor]
type=monitor
module=mysqlmon
servers=server1,server2
user=slave
password=CM@Mysql201
monitor_interval=2000
​
[Read-Write-Service]
type=service
router=readwritesplit
router_options=master,slave
servers=server1,server2
user=slave
password=CM@Mysql201
​
# 提供读写分离服务端口号
[Read-Write-Listener]
type=listener
service=Read-Write-Service
protocol=MySQLClient
address=0.0.0.0
port=4006
启动maxscale,常用命令# 启动maxscale服务
systemctl start maxscale.service
# 停止maxscale服务
systemctl stop maxscale.service
# 查看maxscale服务状态
systemctl status maxscale.service
# 查看MySql服务列表
maxctrl list servers
  1. 在主服务器上创建一个链接账号如

researchGRANT ALL PRIVILEGES ON *.* TO 'research'@'%' IDENTIFIED BY 'CM@Mysql201' WITH GRANT OPTION;
flush privileges;
  1. 链接中间件跟Mysql类似,端口号为监听设置的端口号

mysql -uresearch -p'CM@Mysql201' -h'172.16.1.51' -P4006

六、程序配置

修改项目的application.properties配置文件,把链接改成代理的地址配置如下

spring.datasource.druid.url=jdbc:mysql://10.114.30.72:4006/iacl_cmp?characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.druid.username=research
spring.datasource.druid.password=CM@Mysql201

七、注意事项

  1. 在部署数据库主从时,要注意数据的备份及不影响正常的业务

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
MySQL主从读写分离部署是一种常见的数据库架构,它可以提高系统的性能和可用性。在这种架构中,有一个主数据库(Master)用于处理写操作,而多个从数据库(Slaves)用于处理读操作。 以下是MySQL主从读写分离部署的一般步骤: 1. 安装MySQL:在主服务器和从服务器上安装MySQL数据库软件。 2. 配置主服务器:在主服务器上进行以下配置操作: - 在my.cnf配置文件中启用二进制日志(binary log)功能,并设置一个唯一的服务器ID。 - 创建一个用于复制的账户,并授予该账户复制权限。 3. 配置从服务器:在每个从服务器上进行以下配置操作: - 在my.cnf配置文件中设置一个唯一的服务器ID。 - 配置从服务器连接到主服务器的信息,包括主服务器的IP地址、复制账户的用户名和密码。 4. 启动复制:在从服务器上启动复制进程,使其连接到主服务器并开始复制数据。 5. 验证复制:确认从服务器已经成功连接到主服务器并开始复制数据。可以通过查看主从服务器的状态信息来验证复制是否正常运行。 6. 读写分离配置:在应用程序中配置读写分离,使读操作通过从服务器处理,写操作通过主服务器处理。可以使用中间件或代理来实现读写分离,例如MySQL Proxy、MySQL Router或HAProxy。 7. 监控和维护:定期监控主从服务器的状态,确保复制正常运行。如果主服务器发生故障,可以手动将其中一个从服务器提升为新的主服务器。 需要注意的是,MySQL主从复制并不能实时同步数据,而是异步复制。因此,主从复制在高并发写入场景下可能存在一定的延迟。此外,主从复制也需要考虑数据一致性和容灾备份等问题。在部署过程中,建议参考MySQL官方文档和相关资料,并根据实际情况进行配置和调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黄辛华

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

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

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

打赏作者

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

抵扣说明:

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

余额充值