2014-02-19 75 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

    相關問題