我面臨完全相同的問題。同時設置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