問題重現(如下討論範圍僅限Windows環境):mysql
C:\AppServ\MySQL> mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)sql
編輯mysql配置文件my.ini(不知道在哪請搜索),在[mysqld]這個條目下加入
skip-grant-tables
保存退出後重啓mysqlshell
1.點擊「開始」->「運行」(快捷鍵Win+R)。數據庫
2.啓動:輸入 net stop mysqlui
3.中止:輸入 net start mysqlspa
這時候在cmd裏面輸入mysql -u root -p就能夠不用密碼登陸了,出現password:的時候直接回車能夠進入,不會出現ERROR 1045 (28000),但不少操做都會受限制,由於咱們不能grant(沒有權限)。按下面的流程走(紅色部分爲輸入部分,粉紅色的是執行後顯示的代碼不用輸入):code
1.進入mysql數據庫:orm
mysql> use mysql;
Database changedip
2.給root用戶設置新密碼,藍色部分本身輸入:
mysql> update user set password=password("新密碼") where user="root";
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0get
3.刷新數據庫
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
4.退出mysql:
mysql> quit
Bye
改好以後,再修改一下my.ini這個文件,把咱們剛纔加入的"skip-grant-tables"這行刪除,保存退出再重啓mysql就能夠了。
-------------------2015-12-21-------------------
今天發現了個新方法,簡單暴力...
首先找到my.ini 或my.cnf文件
[mysqld] skip-name-resolve
在[mysqld]下添加 skip-name-resolve
重啓Mysql服務便可