2013-03-07 72 views
0

我需要访问我的vbulletin论坛数据库而不是我的rails应用程序。 我创建了database.yml使用rails连接到外部数据库

vbulletin: 
    adapter: mysql2 
    encoding: latin2 
    database: db_name 
    username: username 
    password: password 
    host: forum.hostname.pl 
    port: 3306 

vbulletin条目,创建简单的模型vbuser.rb

class Vbuser < ActiveRecord::Base 
    establish_connection(:vbulletin) 
    self.table_name = 'user' 
end 

现在,我试图运行Vbuser.last在控制台却得到: Mysql2::Error: Can't connect to MySQL server on 'forum.hostname.pl' (110)

可以采取什么问题?

+0

使用管理控制台,您可以使用database.yml中的详细信息连接到数据库吗? – DaveStephens 2013-03-07 13:24:22

回答

1

两个原因,我能想到的 - :要么你已经提供了不正确的信息,或将主机不允许您可以直接连接。不要认为这是一个Rails的具体问题。你可以做一些其他语言(php等)的快速检查,看看你是否能够连接?你的语法对我来说似乎很好。

要快速检查本地主机上创建一个connect.php文件。

在该文件中

<?php 
$link=mysqli_connect('host','user','pwd','database') or die("can't connect"); 
if ($link) 
echo "Working"; 
mysqli_close($link); 
?> 

您能得到什么?

+0

只运行'telnet forum.hostname.pl 3306'并得到'Trying xxx.xxx.xxx.xxx ... telnet:无法连接到远程主机:连接超时'。等待我的管理员信息,也许他阻止外部连接? PS。你的脚本会给出相同的结果'无法连接到MySQL'。至少我知道这不是Rails问题,谢谢。 – 2013-03-07 13:29:15

+0

问题是数据库用户特权和防火墙设置。 – 2013-03-14 09:41:16