Windows下Mysql免安裝版出現的常見錯誤(1045,1054,1820)

由于有無法抗拒的理由,筆者又重新踏上安裝mysql之旅。之前安裝MySQL很順利,這次安裝出現了一系列問題,問題的源頭是常見的ERROR 1045,最后終于解決了,下面是解決辦法。如有不足之處請指出。

由于筆者使用安裝的Windows系統,而且用的是MySQL5.7.18的免安裝版所以在此只說明Windows平臺下MySQL免安裝版的問題解決辦法。
Windows平臺下:
ERROR 1045錯誤具體顯示為

ERROR 1045:Access denied for user 'root'@'localhost' (using password:YES)

解決方法

1.在MySQL安裝路徑下找到my.ini文件,在[mysqld]下添加
skip-grant-tables
添加后顯示為

[client]
port=3306
default-character-set=utf8
[mysqld]
skip-grant-tables
port=3306
character_set_server=utf8
basedir=D:\learn\mysql-5.7.18-winx64
datadir=D:\learn\mysql-5.7.18-winx64\data
[WinMySQLAdmin]
%MYSQL_HOME%\bin\mysqld.exe

表示跳過密碼選項。

2.重新啟動mysql服務;

這里有兩種辦法:
(1) 用管理員權限進入windows命令行,輸入

net stop mysql

再輸入

net start mysql

即可。
(2) 右擊我的電腦>管理>服務和應用程序>服務,找到MySQL服務,點擊重新啟動即可。如圖所示。


MySQL重啟動

3.在命令行內輸入

mysql -u root -p

Enter Password:直接回車即可進入mysql。

mysql>use mysql;
mysql>update user SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

4.然而在這里又出現ERROR 1054錯誤:

ERROR 1054 (42S22): Unknown column 'password' in 'field list'  

后來發現果然是用戶表沒有password列,取而代之的是authentication_string列,所以此處應該輸入

mysql>update user set authentication_string = password('MyNewPassword') where user='root';  

提示成功后輸入

msyql>FLUSH PRIVILEGES; 

最后退出,輸入

mysql>quit

5.刪除my.ini文件中之前加入的skip-grant-tables,重新啟動mysql服務。

6.在輸入相關命令便可進入mysql。
但是此時又出現ERROR 1820錯誤:

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement 

這種問題的解決辦法為

mysql>SET PASSWORD = PASSWORD('MyNewPassword'); 

這樣便可解決。

這樣安裝mysql免安裝版的一系列問題,讓筆者搞了半天,記下來方便你我他,哈哈~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容