Rails Passenger& mysql用户拒绝访问

时间:2014-01-23 14:53:22

标签: mysql ruby-on-rails apache passenger

我在Fedora 20上运行一个针对Apache& amp; mysql(Maria db) 在最近更新Fedora之后,它没有任何问题,之后passanger因此错误而失败

  

无法启动Web应用程序

     

用户'用户'@'localhost'拒绝访问数据库'TheDB'   (Mysql2 ::错误)

使用WEBrick从命令行运行rails工作正常,也可以用

连接到mysql

mysql -u user -h loalhost m -p

重新安装乘客和mysql2 gem没有帮助

经过几个小时的处理后,我正在绘制一个关于还有什么可以尝试的完整空白

我欢迎任何想法

2 个答案:

答案 0 :(得分:1)

如果您可以使用命令行中的正确用户名和密码进行连接,但您的脚本无法使用相同的凭据进行连接,请检查数据库mysql,表用户,以获取主机列中的正确值。

SELECT Host FROM mysql.user WHERE User='myusername';

来自http://dev.mysql.com/doc/refman/5.1/en/connection-access.html

  

使用三个用户表范围执行身份检查   列(主机,用户和密码)。服务器接受连接   仅当某个用户表格行中的主机用户列与之匹配时   客户主机名用户名,客户端提供密码   在该行中指定。

检查sorting rules是否对您没有影响:

  

服务器使用与客户端主机名称和用户名匹配的第一行

答案 1 :(得分:0)

我遇到了同样的问题。在设置ror应用程序时,所有rake命令都运行正常。只需输入“mysql”就可以从linux控制台轻松访问mysql,它需要mysql控制台和database.yml使用root用户和空密码。

完全相同的设置正在其他开发实例上工作,但在花了一整天后我得到了解决方案。

当我们在database.yml中使用以下配置时

*evelopment: &development
  adapter: mysql2
  database: development
  encoding: utf8
  username: root
  password:
  host: localhost
  socket: /var/run/mysqld/mysqld.sock*

然后应用程序尝试连接到mysql为“mysql -u root -h localhost”,在我的情况下,此命令给出了以下错误。

*$mysql -u root -h 127.0.0.1
ERROR 1698 (28000): Access denied for user 'root'@'localhost'*

使用以下方式调整root用户后,问题已解决。

*sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;*