【发布时间】:2014-03-19 22:16:52
【问题描述】:
我正在尝试在亚马逊 ec2 上的 ubuntu 上设置 mysql-proxy 我做了以下事情:
sudo apt-get install mysql-proxy --yes
vi /etc/default/mysql-proxy
我将以下内容放在“/etc/default/mysql-proxy”上
ENABLED="true"
OPTIONS="--proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua
--proxy-address=127.0.0.1:3306
--proxy-backend-addresses=private_ip_of_another_ec2_db_server:3306,private_ip_of_another_ec2_db_server:3306"
还与“--proxy-address=private_ip_or_public_ip_of_proxy-server:3306 或 4040”相关联 和“--proxy-backend-addresses=public_ip_of_another_ec2_db_server:3306,public_ip_of_another_ec2_db_server:3306”
之后我尝试使用 mysql 从另一台电脑连接代理服务器,例如:
mysql -u some_user -pxxxxx -h proxy_server_ip
or
mysql -u some_user -pxxxxx -h proxy_server_ip -P 4040
但它不起作用 它的显示错误:
ERROR 2003 (HY000): Can't connect to MySQL server on 'ip' (10061)
我想告诉你可以远程连接数据库服务器,我允许远程连接到任何主机
我也试过 /etc/init.d/mysql-proxy start 或 /etc/init.d/mysql-proxy restart 但没有结果
只是通知您 /etc/init.d/mysql-proxy stop 显示失败
谁能帮我在ubuntu上设置和配置mysql-proxy
===
编辑
我从 stackoverflow 的其他问题中找到了一些帮助,并且还根据 cmets 中的建议,完成了以下程序。现在看来它可以工作了。
我在本地安装了 mysql-client 和 mysql-server(在代理服务器上) 然后我尝试使用以下命令运行 mysql-proxy:
mysql-proxy --proxy-backend-addresses=10.73.151.244:3306 --proxy-backend-addresses=10.73.198.7:3306 --proxy-address=:4040 --admin-username=root --admin-password=root --admin-lua-script=>/usr/lib/mysql-proxy/lua/admin.lua
然后我尝试远程连接到代理服务器及其工作。 但似乎我需要在屏幕下运行这个命令,因为当我关闭终端代理停止工作。
您能否告诉我,我需要在屏幕下运行此命令还是有其他方法可以让它一直处于活动状态?
【问题讨论】:
-
Win32 错误代码 10061:无法建立连接,因为目标机器主动拒绝。 ...与
--proxy-address=127.0.0.1:3306完全一致。代理将拒绝来自配置中包含该选项的外部机器的连接。不要远程测试。本地测试然后远程,一旦本地工作。 -
远程测试您建议的配置?通知你我没有在本地安装 mysql-client 或 mysql-server(我安装了 mysql-proxy)
-
如果您不从本地测试开始,您会变得更加困难。安装 mysql-client... 你迟早会需要它。另外,启动代理时根本不要指定
--proxy-address,代理应该默认侦听所有可能的IP地址,TCP端口4040。请注意测试时收到的错误末尾的代码(在您发布的示例中为 10061)。 C:\>perror 10061(替换你看到的任何不同的代码)将来会给你这个错误的翻译。 -
迈克尔,请检查我的问题的编辑部分,并请给我建议。
标签: mysql linux ubuntu amazon-ec2 mysql-proxy