我在IP 192.168.9.14和192.168.9.15上有2台ubuntu 11.04服务器。在.14我已经安装了ruby + rails并在.15上我安装了mysql并且我站点的数据库位于.15
我现在想让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
我目前在rails日志中出现错误,如下所示:
无法连接到192.168.9.15上的MySQL服务器。
我原本以为这是由于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 :(得分:3)
您需要客户端 - sudo apt-get install mysql
服务器通常是mysql-server
你为ruby安装了mysql gem吗? Rails需要这个才能连接到DB。还要确保.15可以接受来自.14的远程请求。
答案 1 :(得分:2)
您是否已将mysql数据库配置为侦听外部IP流量?我不认为MySQL默认允许外部连接,只允许本地主机流量。检查你的my.cnf。