使用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.cnf
已bind 0.0.0.0
,防火墙暂时已被sudo iptables -F
停用。
答案 0 :(得分:1)
由于用户对数据库访问权限而导致此错误,因此您必须在上述数据库上为此用户授予访问权限。找到以下命令以授予权限。在mysql终端上运行这些命令
GRANT ALL PRIVILEGES ON app_production.* TO 'abc'@'%' WITH GRANT OPTION
FLUSH PRIVILEGES
答案 1 :(得分:-1)
听起来用户abc
未设置MySQL。转到MySQL客户端并确保创建用户(使用该数据库)。