2009-04-26 58 views
2

我想加入到MySQL,我可以連接到該端口從我的應用程序的另一個TCP端口如何將端口添加到MySQL服務器

我有我的應用程序的副本,我從運行它們都同一臺機器。它們都連接到運行在同一臺計算機上的MySql服務器。問題是默認端口3306已被佔用。

回答

6

您無法綁定mysqld來偵聽多個端口。您可以實現這一目標的唯一方法是使用內部路由規則,將目標端口轉發到3306.

如果您在Linux上,則可以使用iptables來實現此目的。 iptables是一個通常爲系統管理員保留的樂趣。

請問您的應用程序的兩個副本無法連接到同一端口3306的原因是什麼?通常情況下,您應該可以連接任意數量的客戶端。

1

單個mysql實例可以託管多個數據庫。因此,對於您來說,替代方案是每個應用程序連接到在端口3306上運行的同一個mysql實例,但每個應用程序使用不同的數據庫名稱。

+0

這不會解決我的問題,他們需要共享相同的數據 但問題是端口不能被2個進程共享 – Shvilam 2009-04-26 07:52:10

5

你可以做到這一點是這樣的:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9005 -j REDIRECT --to-port 9000 

哪裏eth0的是您的網絡開發,9005是你的「源端口」,和9000在您的服務正在運行的端口。哦,那個例子只適用於TCP協議。

你可以找到更多關於端口重定向的例子 here。 Linux的有用網站,順便說一句。