2011-11-01 173 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

对我来说没问题,队友。你的问题解决了,那最重要:) –

相关问题