ubuntu 上Access denied for user 'root'@'localhost' (using password:YES) 的解決方案
在ubuntu系統通過apt-get 安裝好mysql 並且配置好密碼後, 使用這個命令“mysql -uroot -pmyadmin”後出現以下錯誤:
“Access denied for user 'root'@'localhost' (using password:YES)”
直接輸入“mysql” 也回報類似的錯誤:應該是:
“Access denied for user 'ODBC'@'localhost' (using password:NO)”。
有網上說開啟MySQL 的 MySQL 5.5 Command Line Client,在裡面進行一系列的操作即可。但是此介面進來就要輸入密碼:
(BTW, 嘗試重灌在安裝MySQL的時候不設定密碼。安裝成功後,還是一樣報錯!)
網上看了一大堆的解決辦法,都不行。最後,結合上面的文章和其他一些文章,終於解決問題了, 也不知道是不是最好解決手段. 歡迎"大家"之言!
解決步驟:
1、開啟MySQL目錄下的配置檔案(我的目錄是/etc/mysql/mysql.conf.d/mysqld.cnf, 可能有的系統是my.ini),在檔案的最後新增一行“skip-grant-tables”,儲存並關閉檔案。
2、重啟MySQL服務(我用命令 service mysql restart)。
3、在命令列中輸入“mysql -uroot -p”(不輸入密碼),回車即可進入資料庫。
4、執行,“use mysql;”使用mysql資料庫。
5、執行,“update user set authentication_string=PASSWORD("rootadmin") where user='root';”(修改root的密碼, 有的mysql表列名可能是password, 需要是命令:"update user set password=PASSWORD("rootadmin") where user='root';")
6、開啟MySQL目錄下的my.ini檔案,刪除最後一行的“skip-grant-tables”,儲存並關閉檔案。
7、重啟MySQL服務。( service mysql restart)
8、在命令列中輸入“mysql -uroot -prootadmin”,問題搞定!