由于有無法抗拒的理由,筆者又重新踏上安裝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免安裝版的一系列問題,讓筆者搞了半天,記下來方便你我他,哈哈~