我面临完全相同的问题。同时设置ror应用程序所有rake命令都正常工作。只需简单地输入“mysql”就可以从linux控制台轻松访问mysql,并将其发送到mysql控制台,并且database.yml使用具有空密码的root用户。
完全相同的设置工作在其他开发实例,但花了一整天后,我得到了解决方案。
当我们在数据库中使用以下配置。阳明海运
*evelopment: &development
adapter: mysql2
database: development
encoding: utf8
username: root
password:
host: localhost
socket: /var/run/mysqld/mysqld.sock*
然后应用程序试图连接到MySQL作为“的mysql -u根-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;*
in mysql.User在用户“user”的字段Host中的值是什么? mysql -u用户-h REAL_IP是否也适用? (http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_bind- address) – aconrad
您是使用tcp/ip连接还是通过UNIX套接字进行连接? – davidb
@aconrad:它使用真正的IP工作 – Eli