数据库优化项目
使用中间件ProxySQL实现读写分离降低服务器压力,查看慢查询日志,反馈慢查询优化查询速度,清除无用数据,添加zabbix对mysql的监控。
ProxySql读写分离:
环境:mysql集群134、133
Mysql touter 132
1、mysql安装:
apt install mysql-server
2、mysql主从复制
配置文件
主:
vim /etc/my.cnf
#在[Mysqld]模块修改
server-id = 11 //三台主从数据库的id必须不同
log-bin = master-bin //主服务器日志文件
log-slave-updates=true //允许从服务器更新
从:
[mysqld]
bind-address = 0.0.0.0
server-id = 1002
read_only=ON
设置
登录主数据库给从数据库授权
#创建slave1用户
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
#给slave1用户授予数据同步的权限
GRANT replication slave on . to 'slave1'@'%'
#刷新权限
flush privileges;
开启主从同步
查看主节点binlog执行位置
mysql> show master status;
从节点开启主节点同步操作:
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.146.134',
MASTER_PORT=3306,
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='master-bin.000001',
MASTER_LOG_POS=858;
Query OK, 0 rows affected, 8 warnings (0.03 sec)
#从节点开启数据同步
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.03 sec)
3、mysql-router安装
MySQL :: Download MySQL Router
dpkg -i mysql-router-community_8.0.39-1ubuntu24.04_amd64.deb
4、Mysql-router设置
mysqlrouter --help 查看配置文件:
修改配置文件写数据库走7001读数据走7002
以下选项可用于路由标识的策略部分
[routing:basic_failover]
#Router地址
bind_address = 192.168.146.132
Router端口
bind_port = 7001
#读写模式
mode = read-write
目标服务器
destinations = 192.168.146.134:3306
[routing:load_balance]
bind_address = 192.168.146.132
bind_port = 7002
mode = read-only
destinations = 192.168.146.133:3306
重启mysqlrouter
service mysqlrouter restart