今天需要裝一個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這個配置參數:
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
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就可以正常登陸,使用了。以上就是解決這個問題,我的步驟。至于其他怪異情況,還沒有遇到,且不提。