二、MySQL Proxy配置选项
启动MySQL Proxy对应的命令行正是mysql-proxy,位于安装路径/bin目录下,mysql-proxy命令行也提供了一些参数,用来实现不同的功能,在启动MySQL Proxy前必须对部分参数进行设置,比如监控服务器地址,名称,端口等。
直接执行mysql-proxy命令,附加--help-all参数,可以查看到该命令支持的所有参数,及调用语法:
[root@rhel5u3 ~]# /usr/local/mysql-proxy/bin/mysql-proxy --help-all
Usage:
mysql-proxy [OPTION...] - MySQL Proxy
Help Options:
-h, --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= listening address:port of the admin-server (default: :4041)
--admin-username= username to allow to log in
--admin-password= password to allow to log in
--admin-lua-script= script. to execute by the admin plugin
proxy-module
-P, --proxy-address= listening address:port of the proxy-server (default: :4040)
-r, --proxy-read-only-backend-addresses= address:port of the remote slave-server (default: not set)
-b, --proxy-backend-addresses= 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= 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= configuration file
--verbose-shutdown Always log the exit code when shutting down
--daemon Start in daemon-mode
--user= Run mysql-proxy as user
--basedir= Base directory to prepend to relative paths in the config
--pid-file= PID file in case we are started as daemon
--plugin-dir= path to the plugins
--plugins= plugins to load
--log-level=(error|warning|info|message|debug) log all messages of level ... or higher
--log-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与MySQL系出同门,那么参数的指定方式自然也很类型,上述命令行中显示的参数,也可以指定在配置文件中,这个配置文件与mysql的my.cnf很类似,甚至完全可以将参数就放在my.cnf中,在调用mysql-proxy命令时通过--defaults-file指定参数文件,参数文件中参数配置规则也与mysql相同,例如:
[mysql-proxy]
admin-address = host:port
admin-user = root
admin-pass = verysafe
..........最上方的[mysql-proxy]标识参数的作用域,参数文件中指定参数不需要加--前缀。
下面就各个参数的不同意义来逐个说明,mysql-proxy支持的参数可以分成四类:
2.1 帮助相关参数
与帮助相关的参数共有四个:
- --help:显示常用的帮助选项;
- --help-all:显示全部帮助选项;
- --help-admin:显示管理模块的帮助选项;
- --help-proxy:显示代理模块的帮助选项;
2.2 管理相关参数
- --admin-address=host:port:指定管理员主机及服务端口,默认值为localhost:4041。
- --admin-lua-script=script_file:指定管理模块的lua脚本文件。
- --admin-username=user:指定登录到mysql-proxy管理界面的用户名。
- --admin-password=pass:指定登录到mysql-proxy管理界面的用户密码。
2.3 代理相关参数
- --proxy-address=host:port:简写形式-P
指定监听服务的主机名(或IP地址)及服务端口,默认端口号为4040。
- --proxy-backend-addresses=host:port,简写形式-b
指定监听的主机名(或IP地址)及端口,指定的主机为代理实现连接的MySQL服务器。可以通过本参数同时指定多个服务器的方式,实现mysql的负载轮循。如果监听的mysql服务有多个,MySQL代理会自动按照循环方式分配客户端连接到后台的mysql服务中。比如说当前设置了a和b两项mysql服务,当第一个客户端发起连接请求时,会连接到服务a,第二个连接请求则连接到服务b,而第三个连接请求又连接服务a,以此循环。
需要注意本参数在命令行与参数文件中使用是稍有差异,主要表现中同时指定多个服务的情况下。
当使用命令行模式调用本参数时,参数后只能跟一个服务,如果要代理的服务有多个,那么必须同时指定多个参数,比如说:
# mysql-proxy --proxy-backend-addresses 192.168.0.1:3306 --proxy-backend-addresses 192.168.0.2:3306
如果是使用配置文件指定本参数的话,就可以在一个参数中指定多个值了,参数值之间以,(逗号)分隔即可,例如:
proxy-backend-addresses = 192.168.0.1:3306, 192.168.0.2:3306
- --proxy-read-only-backend-addresses=host:port:简写形式-r
指定监听的主机名(或IP地址)及端口,该服务器将仅用于提供只读服务。
注意:
只有当服务器对应的内部结构(详见proxy.global.backends)进行了相关配置,可以通过检查backend的type列确定其连接的类型时,设置本参数才有效。因此,本选项仅适用于指定lua脚本文件,允许使用不同backend类型的情况。- --proxy-lua-script=filename:简写形式-s
指定加载的lua脚本文件路径,注意这个脚本文件并非mysql-proxy启动时即加载和解析,而是直到第一个连接创建时才解析,而后每次连接均会重新加载,也就是说在mysql-proxy运行期间可以动态修改lua的脚本文件,保存后会在下次连接创建时即时生效。
- --proxy-pool-no-change-user
当从连接池(proxy-backend-addresses列表)中再次获取连接时,禁止调用MySQL CHANGE_USER接口。默认情况下允许。
- --proxy-fix-bug-25371
修复bug#25371 (mysqld > 5.1.12)的旧libmysql问题。
- --proxy-skip-profiling
禁止分析查询(跟踪时间统计信息),默认情况下允许。
- --no-proxy:禁用代理模块。
2.4 调用相关的参数
- --basedir:指定mysql-proxy程序运行的基础目录,本参数指定的路径必须是绝对路径,如果指定相对路径的话,mysql-proxy执行时会抛出异常信息。
- --daemon:以守护进程模式运行。
- --defaults-file:指定参数文件路径,如果不指定本参数,则表示参数由命令行执行时指定。
- --event-threads:指定事件处理的线程数,默认为1。
- --keepalive:创建一个守护进程,当发现mysql-proxy进程崩溃则自动重新启动,windows平台下该参数无效。
- --log-backtrace-on-crash:当mysql-proxy进程崩溃时调用debug生成跟踪信息。
- --log-file:指定日志文件,记录mysql-proxy运行过程中的信息。
- --log-level:日志记录级别,有error/warning/info/message/debug几种选择。
- --log-use-syslog:记录mysql-proxy错误日志到系统日志中,仅用于linux/unix平台。
- --lua-cpah:设置LUA_CPATH环境变量
- --lua-path:设置LUA_PATH环境变量
- --max-open-files:指定mysql-proxy最大能打开的文件数
- --pid-file:指定存储pid信息的文件(仅用于守护模式)
- --plugin-dir:指定插件所在路径;
- --plugins:指定加载的插件;
- --user:指定运行mysql-proxy的用户。
- --version:简写形式-V,显示mysql-proxy的版本信息。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7607759/viewspace-688420/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7607759/viewspace-688420/