2013年(350)
分类: Mysql/postgreSQL
2013-04-11 15:45:25
启动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支持的参数可以分成四类:
与帮助相关的参数共有四个:
指定监听服务的主机名(或IP地址)及服务端口,默认端口号为4040。
指定监听的主机名(或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
指定监听的主机名(或IP地址)及端口,该服务器将仅用于提供只读服务。
注意:
只有当服务器对应的内部结构(详见proxy.global.backends)进行了相关配置,可以通过检查backend的type列确定其连接的类型时,设置本参数才有效。因此,本选项仅适用于指定lua脚本文件,允许使用不同backend类型的情况。指定加载的lua脚本文件路径,注意这个脚本文件并非mysql-proxy启动时即加载和解析,而是直到第一个连接创建时才解析,而后每次连接均会重新加载,也就是说在mysql-proxy运行期间可以动态修改lua的脚本文件,保存后会在下次连接创建时即时生效。
当从连接池(proxy-backend-addresses列表)中再次获取连接时,禁止调用MySQL CHANGE_USER接口。默认情况下允许。
修复bug#25371 (mysqld > 5.1.12)的旧libmysql问题。
禁止分析查询(跟踪时间统计信息),默认情况下允许。