Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1239461
  • 博文数量: 350
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 5668
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-23 17:53
文章分类

全部博文(350)

文章存档

2013年(350)

分类: Mysql/postgreSQL

2013-04-11 15:45:25

二、 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进程崩溃则自动重新启动,平台下该参数无效。
  • --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的版本信息。

阅读(1080) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~