mysql-proxy做客户端连接转发【外网访问内网mysql】

功能
用于外网客户端连接内网的MySQL,将此工具安装在中转服务器上。
软件版本
mysql-proxy-0.8.1-linux-rhel5-x86-64bit.tar.gz
简单的配置过程
解压后有5个目录
bin  include  lib  libexec  share
进bin目录,查看mysql_proxy的使用帮助
[[email protected] bin]# ./mysql-proxy --help-all
Usage:
  mysql-proxy [OPTION...] - MySQL Proxy

Help Options:
  -?, --help                                              Show help options
  --help-all                                              Show all help options
  --help-admin                                            Show options for the admin-module
  --help-proxy                                            Show options for the proxy-module

admin-module
  --admin-address=<host:port>                             listening address:port of the admin-server (default: :4041)
  --admin-username=<string>                               username to allow to log in
  --admin-password=<string>                               password to allow to log in
  --admin-lua-script=<filename>                           script to execute by the admin plugin

proxy-module
  -P, --proxy-address=<host:port>                         listening address:port of the proxy-server (default: :4040)
  -r, --proxy-read-only-backend-addresses=<host:port>     address:port of the remote slave-server (default: not set)
  -b, --proxy-backend-addresses=<host:port>               address:port of the remote backend-servers (default: 127.0.0.1:3306)
  --proxy-skip-profiling                                  disables profiling of queries (default: enabled)
  --proxy-fix-bug-25371                                   fix bug #25371 (mysqld > 5.1.12) for older libmysql versions
  -s, --proxy-lua-script=<file>                           filename of the lua script (default: not set)
  --no-proxy                                              don‘t start the proxy-module (default: enabled)
  --proxy-pool-no-change-user                             don‘t use CHANGE_USER to reset the connection coming from the pool (default: enabled)

Application Options:
  -V, --version                                           Show version
  --defaults-file=<file>                                  configuration file
  --verbose-shutdown                                      Always log the exit code when shutting down
  --daemon                                                Start in daemon-mode
  --user=<user>                                           Run mysql-proxy as user
  --basedir=<absolute path>                               Base directory to prepend to relative paths in the config
  --pid-file=<file>                                       PID file in case we are started as daemon
  --plugin-dir=<path>                                     path to the plugins
  --plugins=<name>                                        plugins to load
  --log-level=(error|warning|info|message|debug)          log all messages of level ... or higher
  --log-file=<file>                                       log all messages in a file
  --log-use-syslog                                        log all messages to syslog
  --log-backtrace-on-crash                                try to invoke debugger on crash
  --keepalive                                             try to restart the proxy if it crashed
  --max-open-files                                        maximum number of open files (ulimit -n)
  --event-threads                                         number of event-handling threads (default: 1)
  --lua-path=<...>                                        set the LUA_PATH
  --lua-cpath=<...>                                       set the LUA_CPATH
应用
./mysql-proxy --admin-username=‘root‘  --admin-password=‘12345‘ --admin-lua-script=/opt/mysql-proxy-0.8.1-linux-rhel5-x86-64bit/lib/mysql-proxy/lua/admin.lua --proxy-backend-addresses=192.168.60.134:3306 --daemon
参数说明:
指定MySQL的用户名和密码、执行mysql-proxy工具的脚本、mysql服务器地址和端口、服务模式
测试
# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:4040                0.0.0.0:*                   LISTEN      29237/mysql-proxy
tcp        0      0 0.0.0.0:4041                0.0.0.0:*                   LISTEN      29237/mysql-proxy
4040端口是默认的代理端口,客户端连接的时候直接指向此端口
4041是默认的管理模块端口
总结:现在就可以连接中转服务器的4040端口,访问内网的MySQL服务器。除了可以进行连接的转发外,还可以进行查询的监控、过滤、分析、负载均衡(Load Balance)、失败漂移(Failover)等,更多功能以后再研究。
时间: 2024-10-24 13:59:57

mysql-proxy做客户端连接转发【外网访问内网mysql】的相关文章

外网访问内网MySQL数据库

外网访问内网MySQL数据库 本地安装了MySQL数据库,只能在局域网内访问,怎样从外网也能访问本地MySQL数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动MySQL数据库 默认安装的MySQL数据库端口是3306. 2. 实现步骤 2.1 下载并解压holer软件包 Holer软件包:holer-xxx.tar.gz Holer支持各种OS系统平台,请选择跟本地OS类型匹配的holer软件包. 2.2 获取holer access key信息 在holer官网上申请专

简单物联网:外网访问内网路由器下树莓派Flask服务器

最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器(在树莓派下搭flask在其他随笔有说明),在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花的光照然后就不行了: 所以这是一个外网访问内网的梗,解决方案如下: 1.先在本地term命令下查看ifconfig(windows为ifconfig):找到自己的本机ip,我的树莓派被分配ip为192.168.1.103 2.tplink路由器的管理地址是1

外网访问内网工具ngrok tunnel 使用方法

在软件开发测试过程中,我们会经常遇到需要网站部署测试或者给客户演示这样的需求.通常的做法是申请一个域名和空间,将网站放到外网上给客户演示. 这种方法确实可行不过会有两点不好,第一是增加了开支,二是出现问题需要现在自己电脑上改好bug重新上传到外网. 那么问题来了,有没有一种简单的方法,让客户之间访问开发者的电脑上的网站?答案就是下面我将要为大家介绍的外网访问内网工具ngrok tunnel 的使用方法. tunnel可以让公网访问内网部署的站点,对于软件开发测试很有帮助. 由于国外官网经常被墙(

SVN外网访问内网的操作步骤

外网访问内网SVN 需要将路由映射到VisualSVN server 的443端口 将外网的端口从路由器上进行映射到内网端口,例如将外网的6000端口映射为内网的443端口,443为svn服务器默认端口. SVN客户端访问为https://ip:6000/svn/code

外网访问内网SVN服务器 IOS开发

在已经建好SVN服务器的情况 可 通过 打开Cornerstone .app 在Server Location  界面 输入server:域名 Port:443 端口  必须要填 Repository path: 路径填完填  不然也不能访问 备注:外网访问内网服务器 地址填详细. 和端口

怎样从外网访问内网Memcached数据库

外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Memcached数据库 默认安装的Memcached数据库端口是11211. 2. 实现步骤 2.1 下载并解压holer软件包 Holer软件包:holer-xxx.tar.gz Holer支持各种OS系统平台,请选择跟本地OS类型匹配的holer软件包. 2.2 获取holer acce

怎样从外网访问内网Rails

外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口是3000. 2. 实现步骤 2.1 下载并解压holer软件包 Holer软件包:holer-xxx.tar.gz Holer支持各种OS系统平台,请选择跟本地OS类型匹配的holer软件包. 2.2 获取holer access key信息 在holer官网上申请专属的holer access

外网访问内网Tomcat

外网访问内网Tomcat 本地安装了Tomcat,只能在局域网内访问,怎样从外网也能访问本地Tomcat? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1.7及以上版本 执行命令java -version检查Java安装和配置是否正确. 1.2 安装并启动Tomcat 默认安装的Tomcat端口是8080. 2. 实现步骤 2.1 下载并解压holer软件包 Holer软件包:holer-client.zip 2.2 修改holer配置文件 在holer官网上申请专属的ho

外网访问内网Web

外网访问内网Web 本地安装了Web服务端,只能在局域网内访问,怎样从外网也能访问本地Web? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Web服务端 默认安装的Web端口是80. 2. 实现步骤 2.1 下载并解压holer软件包 Holer软件包:holer-xxx.tar.gz Holer支持各种OS系统平台,请选择跟本地OS类型匹配的holer软件包. 2.2 获取holer access key信息 在holer官网上申请专属的holer access key或者使

外网访问内网Docker容器

外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 Docker容器默认的sshd端口是22. 2. 实现步骤 2.1 下载并解压holer软件包 Holer软件包:holer-xxx.tar.gz Holer支持各种OS系统平台,请选择跟本地OS类型匹配的holer软件包. 2.2 获取holer access key信息 在holer官网上申请专