在Rails应用程序中连接远程数据库服务器失败

时间:2014-11-29 18:01:20

标签: mysql ruby-on-rails firewall

使用Rails 3.2,mysql2 gem,MariaDB 5.5。尝试首次部署应用程序时出现以下错误:

Mysql2::Error: Access denied for user 'abc'@'%' to database 'app_production'

我不确定为什么%中的百分号为'abc'@'%'

这是我的database.yml

production:
  adapter: mysql2
  encoding: utf8
  reconnect: true
  host: db.domain.com
  port: 3306
  database: app_production
  pool: 5
  username: abc
  password: some_password_here
  socket: /run/mysqld/mysqld.sock

我的/etc/mysql/my.cnfbind 0.0.0.0,防火墙暂时已被sudo iptables -F停用。

2 个答案:

答案 0 :(得分:1)

由于用户对数据库访问权限而导致此错误,因此您必须在上述数据库上为此用户授予访问权限。找到以下命令以授予权限。在mysql终端上运行这些命令

GRANT ALL PRIVILEGES ON app_production.* TO 'abc'@'%'  WITH GRANT OPTION
FLUSH PRIVILEGES

答案 1 :(得分:-1)

听起来用户abc未设置MySQL。转到MySQL客户端并确保创建用户(使用该数据库)。