Ruby on Rails很难连接到MySQL

时间:2011-05-09 00:34:40

标签: mysql ruby-on-rails mysql-error-1045

我很难让Ruby连接到mySQL。我可以使用mySQL工作台来连接MYSQL,所以这很好。 这是我在尝试运行DBConsole时遇到的错误。

W:\testMySQL>rails dbconsole
Enter password: ********
ERROR 1045 (28000): Access denied for user 'coffeetowndev'@'localhost' (using pa
ssword: YES)

我在GoDaddy帐户上的数据库上运行,因此我无法向该用户授予所有权限。我打电话给godaddy,他们发誓他们的'RoR'部门能够使用我的设置进行连接。 说到这里,这是database.yml文件。

development:
 adapter: mysql
 encoding: utf8
 reconnect: false
 port: 3306
 database: coffeetowndev
 pool: 5
 username: coffeetowndev
 password: ********
 hostname: coffeetowndev.db.5850247.hostedresource.com

在相关/不相关的说明中,我无法安装mySQL2 gem,所以我使用的是mySQL。

编辑:整个database.yml文件

development:
 adapter: mysql
 encoding: utf8
 reconnect: false
 port: 3306
 database: coffeetowndev
 pool: 5
 username: coffeetowndev
 password: ********
 hostname: coffeetowndev.db.5850247.hostedresource.com

test:
 adapter: mysql
 encoding: utf8
 reconnect: false
 port: 3306
 database: coffeetowntest
 pool: 5
 username: coffeetowntest
 password: ********
 hostname: coffeetowntest.db.5850247.hostedresource.com


production:
 adapter: mysql
 encoding: utf8
 reconnect: false
 port: 3306
 database: coffeetown
 pool: 5
 username: coffeetown
 password: ********
 hostname: coffeetown.db.5850247.hostedresource.com

2 个答案:

答案 0 :(得分:0)

您的SQL服务器上是否安装了PHPMyAdmin?通常,每当我创建新用户时,我都将通过PHPMyAdmin并在我正在使用RoR的数据库上设置具有Grant访问权限的用户。你的database.yml看起来很好,问题出在SQL端。

答案 1 :(得分:0)

在部署到godaddy而不是开发者时,是否正在使用生产设置?我没有使用godaddy来托管Rails应用程序的经验,但是他们可能将所有托管应用程序配置为默认生产环境(许多rails主机都可以)。因此,如果它使用不同的环境,它可能没有使用您期望的用户名/密码组合。

您可能还想尝试通过编写快速而脏的PHP测试脚本来测试您的凭据,如下所示:

$con = mysql_connect("coffeetowndev.db.5850247.hostedresource.com","coffeetowndev","******");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
echo 'Connected successfully';

mysql_close($con);

此外,它上面说它失败了,但它正在尝试使用用户'coffeetowndev'@'localhost'。您必须确保使用以下某种方式向该用户授予权限:

grant select,insert,update,delete on coffeetowndev.* to 'coffeetowndev'@'localhost' identified by ********