2011-11-01 171 views
2

我在IP 192.168.9.14和192.168.9.15上有2個ubuntu 11.04服務器。在.14上我已經安裝了ruby + rails和.15我已經安裝了mysql,並且我的站點的數據庫駐留在了.15我是否需要本地安裝MySQL?

我現在想要通過rails 2.3.8從.14連接到數據庫。 15。我在.14的database.yml中有以下內容。

production: 
    adapter: mysql 
    encoding: utf8 
    reconnect: false 
    database: gtt_production 
    pool: 5 
    username: root 
    password: admin 
    host: 192.168.9.15 
    port: 3306 

目前我得到展示在我的滑軌,錯誤日誌如下:

無法連接到MySQL服務器192.168.9.15。

我原本以爲這是由於在MySQL服務器上的用戶權限,但我現在已經添加,並仍然得到同樣的問題。

於是,我又試圖通過一個終端(命令行)連接,如下所示:

mysql -h 192.168.9.15 -uroot -p 

,我得到一個消息,說:

The program 'mysql' can be found in the following packages: 
    * mysql-client-cor-5.1 
Try: sudo apt-get install <selected package> 

......而這正是讓我想起我即使數據庫完全駐留在另一臺服務器上,也需要本地的mysql副本。

請有人確認我的'猜測'是否正確,或者是否有某種「聰明」的方式連接到.15上的mysql服務器,而不是在.14上安裝mysql。

+0

您只需要安裝mysql客戶端以便從控制檯運行'mysql'命令。你應該知道,爲了從命令行運行mysql客戶端需要安裝的東西與你需要爲Rails連接好的東西完全分開。 –

回答

3

您需要的客戶端 - sudo apt-get install mysql服務器通常mysql-server

是你安裝Ruby的MySQL的寶石? Rails需要這個才能連接到數據庫。還要確保.15可以接受來自.14的遠程請求。

+0

感謝您的建議。我試着做一個sudo apt-get安裝mysql,然後回來說'無法找到包mysql'。當我在.15上安裝mysql時,我完成了以下工作:sudo apt-get install mysql-server libmysql-ruby libmysqlclient-dev。我想知道我是否應該在這種情況下做最後2個。你會或其他人知道嗎? – nexar

+0

試試'sudo apt-get install mysql-client-cor-5.1'(我不確定你安裝了哪個版本,數字有差別,例如50 vs 51 vs 55)。另外,你是否安裝了寶石? 'gem list',看看mysql是否在那裏。如果沒有,運行'sudo gem install mysql' – luckytaxi

+0

確定這是一個疼痛。我想接受兩個答案(你和luckytaxis),因爲你們都提供了答案的一部分。我不得不改變my.cnf來正確地綁定到192.168.9.14,我不得不安裝mysql客戶端。 apt-get命令安裝mysql-client。 – nexar

2

你配置了你的mysql數據庫來偵聽外部IP流量嗎?我不認爲MySQL默認允許外部連接,只有本地主機的流量。檢查你的my.cnf。

+0

感謝您的建議,但我有另外2臺服務器的配置,就像我提到的服務器一樣,除了我試圖連接的服務器也已經安裝了mysql(服務器)並且my.cnf文件只顯示一個綁定= 127.0.0.1。所以我猜這不是這裏的答案。一旦我嘗試過luckytaxi的建議,我會在稍後確認。 – nexar

+0

確定這是一個痛苦。我想接受兩個答案(你和luckytaxis),因爲你們都提供了答案的一部分。我不得不改變my.cnf來正確地綁定到192.168.9.14,我不得不安裝mysql客戶端。它的命令是apt-get安裝mysql-client – nexar

+1

對我來說沒問題,隊友。你的問題解決了,那最重要:) –

相關問題