您的当前位置:首页mysql-proxy 初体验

mysql-proxy 初体验

2023-11-09 来源:六九路网

本来是要测atlas 的,可惜没有32的版本,而两种又极其相似,只是内部实现有所不同,所以就熟悉mysql-proxy 为替代吧。

环境:由于条件限制,在单一台机器上测试

rw: 192.168.137.129:3306

ro: 192.168.137.129:3307

viproxy: 192.168.137.129:3814

viadmin: 192.168.137,129:4041

配置文件:myproxy.cnf

[mysql-proxy]

proxy-address=0.0.0.0:38141

plugins = admin,proxy

admin-address = 0.0.0.0:4041

admin-username=admin

admin-password=admin

admin-lua-script=/usr/local/mysqlproxy/lib/mysql-proxy/lua/admin.lua

proxy-backend-addresses=192.168.137.129:3306

proxy-read-only-backend-addresses=192.168.137.129:3307

proxy-lua-script=/usr/local/mysqlproxy/share/doc/mysql-proxy/rw-splitting.lua

log-file=/usr/local/mysqlproxy/log/mysql-proxy.log

log-level=debug

daemon=true

keepalive=true

启动:进入客户端目录

./bin/mysql-proxy --defaults-file=/etc/myproxy.cnf

查看当前的管理操作:

./bin/mysql -h 192.168.137.129 -P 4041 -uadmin -p

select * from backends;    //查看当前各个sql节点的状态

从代理端口操作sql节点

./bin/mysql -h 192.168.137.129 -P 38141 -u test -p

#之前已经通过grant 在sql节点上创建了能用的sql 用户

#进入后就能像操作sql 一样的操作了

注:当时查看管理节点时,发现不能自动的轮询查询,后来发现是lua rw脚本里的配置最小 节点连接数

为4,而我的测试时并只开了两个连接,所以不能轮询查询,改过来后即可

本文出自 “PHP学习笔记” 博客,请务必保留此出处http://jxw7733.blog.51cto.com/6389174/1693173

mysql-proxy 初体验

标签:proxy

小编还为您整理了以下内容,可能对您也有帮助:

技术分享 | MySQL 8.0 代理用户使用

某天有人问了我一个有关 MySQL PROXY 用户该如何使用的问题。

原问题是这样的:MySQL 版本从 5.5 升级到 8.0 后,proxy 用户怎么无法使用了?我之前是按照你博客上写的方法使用的,但是在升级后,安装插件提示如下错误:

这个咋回事?

我给了一个大家都很讨厌的答案: 去看 MySQL8.0 官方手册吧。

auth_test_plugin.so 是 MySQL 5.5 的插件,仅限于测试环境,不推荐线上使用,仅限功能演示。之后的一系列大版本安装包里都不包含这个插件,所以使用方法有些差异。

我在下面示例中使用插件 mysql_native_password ,这个插件自带 proxy 用户功能,所以需要在配置文件里开启对应的开关,并重启 MySQL 实例:(如果使用 sha256_password , 应该把参数 sha256_password_proxy_users=ON 也加到配置文件里。)

使用 proxy 用户功能之前,需要安装 mysql_no_login 插件,阻止隐藏在 proxy 用户下的真实用户登录 MySQL 。

创建一个 proxy 用户 ytt_fake ,使用认证插件 mysql_native_password :

使用 Proxy 用户登录 MySQL :

确认下变量 proxy_user 的值是不是 ytt_fake :

使用 proxy 用户登录后,查看当前登录用户信息:用户实际上是 ytt_real 。

确认下权限:具有真实用户的所有权限。

用 proxy 用户创建表、插入记录、查询、销毁表:

由于真实用户 ytt_real 使用认证插件 mysql_no_login ,MySQL 不允许此用户登录:

技术分享 | MySQL 8.0 代理用户使用

某天有人问了我一个有关 MySQL PROXY 用户该如何使用的问题。

原问题是这样的:MySQL 版本从 5.5 升级到 8.0 后,proxy 用户怎么无法使用了?我之前是按照你博客上写的方法使用的,但是在升级后,安装插件提示如下错误:

这个咋回事?

我给了一个大家都很讨厌的答案: 去看 MySQL8.0 官方手册吧。

auth_test_plugin.so 是 MySQL 5.5 的插件,仅限于测试环境,不推荐线上使用,仅限功能演示。之后的一系列大版本安装包里都不包含这个插件,所以使用方法有些差异。

我在下面示例中使用插件 mysql_native_password ,这个插件自带 proxy 用户功能,所以需要在配置文件里开启对应的开关,并重启 MySQL 实例:(如果使用 sha256_password , 应该把参数 sha256_password_proxy_users=ON 也加到配置文件里。)

使用 proxy 用户功能之前,需要安装 mysql_no_login 插件,阻止隐藏在 proxy 用户下的真实用户登录 MySQL 。

创建一个 proxy 用户 ytt_fake ,使用认证插件 mysql_native_password :

使用 Proxy 用户登录 MySQL :

确认下变量 proxy_user 的值是不是 ytt_fake :

使用 proxy 用户登录后,查看当前登录用户信息:用户实际上是 ytt_real 。

确认下权限:具有真实用户的所有权限。

用 proxy 用户创建表、插入记录、查询、销毁表:

由于真实用户 ytt_real 使用认证插件 mysql_no_login ,MySQL 不允许此用户登录:

mysql读写分离原理是什么?要如何操作?

利用mysql proxy来实现的。

MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是环境服务器压力。

而MySQL另外一个最流行的存储引擎之一Innodb存储数据的策略是分为两种的,一种是共享表空间存储方式,还有一种是独享表空间存储方式。当使用共享表空间存储方式的时候,Innodb的所有数据保存在一个单独的表空间里面,而这个表空间可以由很多个文件组成。

一个表可以跨多个文件存在,所 以其大小不再是文件大小的,而是其自身的。从Innodb的官方文档中可以看到,其表空间的最大为64TB,也就是说,Innodb的单 表基本上也在64TB左右了,当然这个大小是包括这个表的所有索引等其他相关数据。

而当使用独享表空间来存放Innodb的表的时候,每个表的数据以一个单独的文件来存放,这个时候的单表,又变成文件系统的大小了。

显示全文