ports/136028: databases/mysql-proxy - allow multiple backend addresses with mysql-proxy startup script
Alexey V.Degtyarev
alexey at renatasystems.org
Thu Jun 25 13:30:03 UTC 2009
>Number: 136028
>Category: ports
>Synopsis: databases/mysql-proxy - allow multiple backend addresses with mysql-proxy startup script
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu Jun 25 13:30:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Alexey V. Degtyarev
>Release: FreeBSD 7.1-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD renatasystems.org 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 08:58:24 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
>Description:
Current mysql-proxy.sh startup script does not allow use of multiple MySQL
backends due to lack of $mysql_proxy_backend_addresses variable processing.
According to documentation[1] of --proxy-backend-addresses option, it is
possible to specify multiple backend servers by supplying multiple options. But
mysql-proxy.sh just assigns the value of $mysql_proxy_backend_addresses
variable to this option.
The patch allows to use multiple MySQL backend servers by specifying multiple
--proxy-backend-addresses options for each host:port pair in
$mysql_proxy_backend_addresses variable to mysql-proxy command arguments line.
Example of usage:
rc.conf:
mysql_proxy_enable="yes"
mysql_proxy_backend_addresses="10.10.155.201:3306 10.10.155.202:3306"
root at 127.0.0.1[(none)]$ select * from proxy_config;
+----------------------------+--------------------+
| option | value |
+----------------------------+--------------------+
| admin.address | 127.0.0.1:3306 |
| proxy.address | 10.10.155.203:3306 |
| proxy.lua_script | NULL |
| proxy.backend_addresses[0] | 10.10.155.201:3306 | <====
| proxy.backend_addresses[1] | 10.10.155.202:3306 | <====
| proxy.fix_bug_25371 | 0 |
| proxy.profiling | 1 |
+----------------------------+--------------------+
7 rows in set (0.00 sec)
[1] http://dev.mysql.com/doc/refman/5.0/en/mysql-proxy-cmdline.html
>How-To-Repeat:
Just try to use more than one MySQL backend addresses.
>Fix:
--- mysql-proxy.patch begins here ---
diff -u -r mysql-proxy.orig/files/mysql-proxy.sh.in mysql-proxy/files/mysql-proxy.sh.in
--- mysql-proxy.orig/files/mysql-proxy.sh.in 2008-03-27 05:05:18.000000000 +0300
+++ mysql-proxy/files/mysql-proxy.sh.in 2009-06-25 16:57:32.000000000 +0400
@@ -40,9 +40,14 @@
: ${mysql_proxy_backend_addresses="127.0.0.1:3306"}
: ${mysql_proxy_pid_file="/var/run/mysql-proxy.pid"}
+proxy_backend_addresses=""
+for addr in ${mysql_proxy_backend_addresses}; do
+ proxy_backend_addresses="${proxy_backend_addresses} --proxy-backend-addresses=${addr}"
+done
+
pidfile="${mysql_proxy_pid_file}"
command=%%PREFIX%%/sbin/mysql-proxy
-command_args="--admin-address=${mysql_proxy_admin_address} --proxy-address=${mysql_proxy_address} --proxy-backend-addresses=${mysql_proxy_backend_addresses} ${mysql_proxy_args} --daemon --pid-file=${mysql_proxy_pid_file}"
+command_args="--admin-address=${mysql_proxy_admin_address} --proxy-address=${mysql_proxy_address} ${proxy_backend_addresses} ${mysql_proxy_args} --daemon --pid-file=${mysql_proxy_pid_file}"
procname=%%PREFIX%%/sbin/mysql-proxy
run_rc_command "$1"
--- mysql-proxy.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list