天天看點

mysql5.6登陸時,1045:Access denied for user 'root'@'localhost'

今天需要裝一個MySQL資料庫,到官網下載下傳了mysql-installer-community-5.6.17.0.msi這個安裝檔案,在我的win7上安裝好。

但是在使用Navicat登陸時出現“1045:Access denied for user 'root'@'localhost'”這種錯誤。

到網上找了很多例子在失敗過幾次之後,終于根據網上的方法,再根據自己MySQL的情況,把這個問題解決了。

解決過程:

1、以管理者身份運作CMD(防止某些指令隻能管理者識别),然後切換目錄到我的MySQL安裝目錄的bin目錄下

C:\Windows\System32>e:

E:\>cd MySQL\MySQL Server 5.6\bin

E:\MySQL\MySQL Server 5.6\bin>

2、鍵入指令:mysqld install MySQL --defaults-extra-file="E:\MySQL\MySQL Server 5.6\my-default.ini"。注意,my-default.ini是MySQL安裝目錄下的服務初始化要用到的檔案。5.6版本的MySQL是這個檔案名,以前得版本檔案名好像是my.ini。如下示例,可能會顯示下面粗體的結果提示,也可能隻會提示“Service successfully installed.”。這些都表明我們的MySQL資料庫安裝的沒有問題

E:\MySQL\MySQL Server 5.6\bin>mysqld install MySQL --defaults-extra-file="E:\MyS

QL\MySQL Server 5.6\my-default.ini"

The service already exists!

The current server installed: "E:\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-

extra-file="E:\MySQL\MySQL Server 5.6\my-default.ini" MySQL

Service successfully installed.

3、修改my-default.ini(my.ini)檔案,在[mysqld]下面,加上skip-grant-tables這個配置參數:

mysql5.6登陸時,1045:Access denied for user 'root'@'localhost'

4、重新以管理者身份打開一個CMD,鍵入:net stop mysql,關閉mysql服務

C:\Windows\System32>net stop mysql

MySQL 服務正在停止..

MySQL 服務已成功停止。

然後,再鍵入net start mysql,啟動mysql服務。

當然,如果你沒有啟動mysql服務,這裡隻需要啟動一下就可以了,目的是為了重新開機服務重新讀取上一步的ini檔案的改動。

當然,啟動mysq服務有很多方式,如控制台裡的服務、oracle的MySQL notifier都是可以的。

5、啟動mysql後,繼續在bin目錄下的CMD中鍵入:mysql -u root -p

mysql5.6登陸時,1045:Access denied for user 'root'@'localhost'

6、登陸成功後,分别鍵入:

user mysql;

UPDATE user SET Password=PASSWORD('xxooxxoo') where USER='root';

flush privileges;

這是為了修改你的root密碼,“”xxooxxoo當然是你的新密碼咯,重新整理privileges,最後quit退出。

7、将之前在ini檔案中加入的“skip-grant-tables”參數注釋掉,或者删除。

8、最後一步,重新開機mysql,如:net stop ysql、net start mysql

這樣MySQL就可以正常登陸,使用了。以上就是解決這個問題,我的步驟。至于其他怪異情況,還沒有遇到,且不提。

繼續閱讀