【MySQL集群二】使用MyCat和ProxySql代理MySQL集群

中间件代理MySQL

  • MyCat
    • 安装MyCat
      • 介绍:
      • 步骤1:安装Java环境
      • 步骤2:下载并解压Mycat
      • 步骤3:配置Mycat
      • 步骤4:启动Mycat
  • ProxySql
    • 安装ProxySql
      • 介绍:
      • 步骤1:更新系统
      • 步骤2:安装ProxySQL
      • 步骤3:配置ProxySQL
      • 步骤4:启动ProxySQL
      • 步骤5:使用ProxySQL

MyCat

【MySQL集群二】使用MyCat和ProxySql代理MySQL集群_第1张图片

安装MyCat

介绍:

Mycat是一个开源的数据库中间件,用于提供高可用性、负载均衡和分片能力。

步骤1:安装Java环境

首先,您需要在服务器上安装Java环境。打开终端,运行以下命令:

sudo yum install java-1.8.0-openjdk-devel

步骤2:下载并解压Mycat

  1. 在Mycat官方网站下载最新版本的Mycat压缩包,网址:Mycat官方网站或直接在服务器上使用wget命令下载:
# 下载Mycat压缩包
wget http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zip
  1. 在终端中进入您下载的目录,运行以下命令解压文件:
tar -zxvf mycat2-install-template-1.21.zip

在使用tar解压时可能会出现下面错误,是因为文件中包含了多个压缩包:
在这里插入图片描述
解决方法:使用 unzipp7zip 解压。

unzip mycat2-install-template-1.21.zip

步骤3:配置Mycat

  1. 进入解压后的Mycat目录:
cd mycat/lib/
  1. 下载依赖包或把下载好的依赖包复制到目录下:
# 直接下载依赖包
wget http://dl.mycat.org.cn/2.0/1.21-release/mycat2-1.21-release-jar-with-dependencies.jar
# 复制
cp mycat2-1.21-release-jar-with-dependencies.jar mycat/lib/
  1. 编辑 conf 目录下的 server.xml 配置文件:
vim mycat/conf/datasources/prototypeDs.datasource.json
  1. 将mysql连接配置成master数据库,需要修改的只有urluserpassword
{
        "dbType":"mysql",
        "idleTimeout":60000,
        "initSqls":[],
        "initSqlsGetConnection":true,
        "instanceType":"READ_WRITE",
        "maxCon":1000,
        "maxConnectTimeout":3000,
        "maxRetryCount":5,
        "minCon":1,
        "name":"prototypeDs",
        "password":"Ddz@5201413",
        "type":"JDBC",
        "url":"jdbc:mysql://114.132.156.12:3306/ddz_test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
        "user":"root",
        "weight":0
}

输入:wq!保存退出。

步骤4:启动Mycat

  1. mycat/bin/ 目录下使用以下命令启动Mycat服务器:
sh mycat start

可能会出现启动失败的情况:
【MySQL集群二】使用MyCat和ProxySql代理MySQL集群_第2张图片
原因是wrapper-linux-x86-64和wrapper-linux-x86-32这两个文件权限设置不正确。

# 查看文件权限
ls -l /home/mycat/bin/./wrapper-linux-x86-64  
ls -l /home/mycat/bin/./wrapper-linux-x86-32
# 设置文件权限
chmod +x /home/mycat/bin/./wrapper-linux-x86-64  
chmod +x /home/mycat/bin/./wrapper-linux-x86-32
或给/bin文件赋权限
chmod -R 777 bin/

设置完后进入mycat/bin/目录执行启动命令:

cd mycat/bin/
./mycat start
  1. 确认Mycat顺利启动后,使用以下命令查看Myat进程是否正在运行:
ps -ef | grep mycat

【MySQL集群二】使用MyCat和ProxySql代理MySQL集群_第3张图片

步骤5:连接并测试Mycat

  1. 使用MySQL客户端连接到Mycat服务器,示例:
mysql -h114.132.156.12 -P8066 -uroot -p
  1. 输入密码后成功连接到Myat服务器,可以执行SQL语句进行测试。

结论:
通过按照以上步骤,在CentOS 7上成功安装和配置Mycat,并能够连接并测试Mycat服务器。这将为您的数据库管理提供高可用性、负载均衡和分片能力,提高数据库的效率和性能。

ProxySql

安装ProxySql

介绍:

ProxySQL是一个高性能的MySQL代理服务器,用于负载均衡、故障转移和查询过滤。在本篇博客中,我们将讲解如何在CentOS 7.9上安装和配置ProxySQL。

步骤1:更新系统

首先,使用以下命令更新系统上的所有软件包:

sudo yum update

步骤2:安装ProxySQL

添加ProxySQL的软件仓库:

sudo yum install -y https://github.com/sysown/proxysql/releases/download/v2.5.0/proxysql-2.5.0-1-centos7.x86_64.rpm

安装proxysql软件包:

sudo yum install proxysql

步骤3:配置ProxySQL

编辑ProxySQL配置文件:

sudo vi /etc/proxysql/proxysql.cnf

mysql_servers节中添加MySQL后端的详细信息:

mysql_servers =
(
    { 
        address = '127.0.0.1', 
        port = 3306, 
        hostgroup = 10, 
        max_connections = 100, 
        max_replication_lag = 5, 
        use_ssl = 0 
    }
)

步骤4:启动ProxySQL

启动ProxySQL服务:

sudo systemctl start proxysql
sudo systemctl enable proxysql

步骤5:使用ProxySQL

连接到ProxySQL管理员命令行界面:

mysql -u admin -p -h 127.0.0.1 -P 6032 --prompt='ProxySQLAdmin>'

在ProxySQL管理员命令行界面上配置用户、主机和端口映射:

INSERT INTO mysql_users (username, password, default_hostgroup) VALUES ('user', 'password', 10);
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;
INSERT INTO mysql_servers (hostgroup_id, hostname, port) VALUES (10, '127.0.0.1', 3306);
LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;
INSERT INTO mysql_query_rules (active, match_pattern, destination_hostgroup) VALUES (1, '^SELECT.*', 10);
LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK;

现在,您可以使用ProxySQL代理MySQL查询了。

结论:
在CentOS 7.9上安装ProxySQL代理MySQL是一个简单的过程,只需按照本文的步骤进行操作即可。使用ProxySQL可以提高MySQL服务器的负载均衡和故障转移能力,同时还能对查询进行过滤和重定向。

你可能感兴趣的:(MySql,数据库,mysql,数据库,mycat)