2014-02-19 74 views
3

我试图安装的MySQL代理在Ubuntu在Amazon EC2上 MySQL的代理我做了以下内容:如何安装和配置上的Amazon EC2 Ubuntu的

sudo apt-get install mysql-proxy --yes 
vi /etc/default/mysql-proxy 

我把下面的“/等内容/默认/ MySQL的代理 “

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地址= private_ip_or_public_ip_of_proxy服务器:3306或4040“ 和” --proxy-于后端的地址= 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重启但没有结果

只是告诉你,/etc/init.d/mysql-proxy停止显示失败

任何人都可以请帮我设置和ubuntu上配置MySQL代理

===

编辑

我发现一些帮助从其他问题的计算器,也根据意见中的建议,做了以下过程。现在看来它的工作。

我安装MySQL的客户端和MySQL服务器本地(代理服务器上) 然后我试图运行MySQL代理使用以下命令:

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 

然后我试图远程地连接到代理服务器和它的工作。 但似乎我需要在屏幕下运行此命令,因为当我关闭终端代理停止工作。

你能告诉我,我是否需要在屏幕下运行这个命令,或者有没有其他办法可以让它一直活着?

+1

* Win32错误代码10061:无连接可以作出,因为目标机器积极拒绝,* ... ...这是'--proxy-地址完全一致= 127.0 .0.1:3306'。该代理将使用配置中包含的该选项拒绝来自外部机器的连接。不要远程测试。本地测试*然后*远程测试,一旦本地工作。 –

+0

远程测试您建议的配置?告诉你我没有在本地安装mysql-client或mysql-server(我在哪里安装了mysql-proxy) – user3011768

+0

如果你不从本地测试开始,你会让自己更加困难。安装mysql-client ...你迟早需要它。另外,启动代理时不要指定'--proxy-address',并且代理应该监听所有可能的IP地址,默认情况下是TCP端口4040。请注意测试时得到的错误结尾处的代码(在您发布的示例中为10061)。 C:\> perror 10061(替代你看到的任何不同的代码)会在未来给你一个这个错误的翻译。 –

回答

2

还有需要在你的mysql-proxy上安装Mysql客户端或Mysql服务器。

安装mysql-proxy确实有“完整的守护进程功能”编译进去。

如果您正在运行Ubuntu服务器,您可能希望使用UPSTART服务脚本。

该脚本可以被复制到/etc/init/mysql-proxy.conf

# mysql-proxy.conf (Ubuntu 14.04.1) Upstart proxy configuration file for AWS RDS 
# mysql-proxy - mysql-proxy job file 

description "mysql-proxy upstart script" 
author "shadowbq <[email protected]>" 

# Stanzas 
# 
# Stanzas control when and how a process is started and stopped 
# See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn 

# When to start the service 
start on runlevel [2345] 

# When to stop the service 
stop on runlevel [016] 

# Automatically restart process if crashed 
respawn 

# Essentially lets upstart know the process will detach itself to the background 
expect daemon 

# Run before process 
pre-start script 
    [ -d /var/run/mysql-proxy ] || mkdir -p /var/run/mysql-proxy 
    echo "starting mysql-proxy" 
end script 

# Start the process 
exec /usr/bin/mysql-proxy --plugins=proxy --proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua --log-level=debug --proxy-backend-addresses=private_ip_of_another_ec2_db_server:3306,private_ip_of_another_ec2_db_server:3306 --daemon --log-use-syslog --pid-file=/var/run/mysql-proxy/mysql-proxy.pid 

在上述例子中我硬编码的AWS RDS服务器到脚本,而不是用默认值和配置文件

+0

日志在全面调试中重定向到/ var/log/syslog以帮助排除故障。请务必更改生产中的日志级别。 – shadowbq

1

摆弄安装升级版0.8。 5

注:

倾向于回购没有0.8.5所以我们需要从MySQL官方网站

前提下载焦油 -

与以下内容 ENABLED="true" OPTIONS="--defaults-file=/etc/mysql/mysql-proxy.cnf"

安装程序创建的文件/etc/default/mysql-proxy: -

  1. 下载mysql-proxy 0.8.x
  2. 解压在/ usr /本地
  3. 更新PATH环境/usr/local/mysql-proxy-0.8.5-linux-debian6.0-x86-64bit/bin vim /etc/environment (to update environment path) cd /usr/local/mysql-proxy-0.8.5-linux-debian6.0-x86-64bit/bin

  4. 运行命令须藤./mysql-proxy --defaults文件= /等/ MySQL的/ MySQL的-proxy.cnf

示例MySQL-proxy.cnf文件

[mysql-proxy] 
log-level=debug 
log-file=/var/log/mysql-proxy.log 
pid-file = /var/run/mysql-proxy.pid 
daemon = true 
--no-proxy = false 
admin-username=ADMIN 
admin-password=ADMIN 
proxy-backend-addresses=RDS-ENDPOINT:RDS-PORT 
admin-lua-script=/usr/lib/mysql-proxy/lua/admin.lua 
proxy-address=0.0.0.0:4040 
admin-address=localhost:4041 
  • 变化主机RDS的IP地址和端口或MySQL

  • 经由代理与

    的MySQL -h {代理主机IP} -P连接到MySQL服务器4040 -u {} mysql_username -p

  • +0

    只有升级版本的mysql proxy 0.8.5可以和最新的mysql配合使用。所以在升级它的功能后。遵循上述步骤。 – devzone

    相关问题