安裝mysql-8.0.13-winx64遇到的問題和親測有效的安裝方法
遇到的問題:
1、執行
mysql -u root -p
時,回車提示輸入密碼,然後不輸入密碼(或者輸入臨時生成的密碼)直接回車出現報錯。
2、Navicat連接出錯。
用以下方式安裝可以解決。
一、準備工作
1、解壓mysql-8.0.13-winx64.zip
2、配置環境變數D:\mysql-8.0.13-winx64\bin (自己的安裝目錄)到path變數。
PS:環境變數可以不配置,但每次執行命令的時候要先進入到bin下。
二、安裝流程
1、如果你已經安裝過mysql服務,請先解除安裝服務,解除安裝服務前請先確認服務已關閉。
mysqld --remove mysql
注意:mysql是你的服務名字,是你註冊服務時候設定的,如果不清楚可以到控制面板>管理工具>檢視本地服務中查詢。
2、解壓後的mysql-8.0.13-winx64資料夾預設沒有data資料夾和my.ini檔案。
data資料夾無需建立,如果你之前已經建立過服務,請手動刪除data資料夾(提示被佔用往往是你的mysql服務正在啟動,先關閉)。
關閉mysql服務
net stop mysql
PS:同理,mysql是你的服務名字,並且和啟動mysql服務的命令一樣都是屬於windos的,不需要配置mysql的環境變數也可執行。
3、建立my.ini檔案,這裡只配置了一些基本屬性。
[mysq# 設定mysql客戶端預設字符集
default-character-set=utf8
[mysqld]
# 設定3306埠
port = 3306
# 設定mysql的安裝目錄
basedir=D:\mysql-8.0.13-winx64
# 設定mysql的資料庫存放目錄
datadir=D:\mysql-8.0.13-winx64/data
# 預設使用“mysql_native_password”外掛認證
default_authentication_plugin=mysql_native_password
PS:路徑記得改成自己的。
4、進入cmd(快捷鍵win+R,記得用管理員身份,防止可能存在的許可權錯誤)
5、輸入命令(如果之前安裝過服務,確認服務已經解除安裝,安裝目錄下data資料夾已被清空或已被刪除)
mysqld --initialize-insecure --user=mysql
這個命令會根據my.ini配置檔案對mysql資料庫進行初始化(data資料夾就是此時自動建立的),時間可能會比較長,請耐心等待。
6、接著註冊mysql服務
mysqld --install mysql --defaults-file=d:\mysql-8.0.13-winx64\my.ini
此時才真正的建立了名為mysql(名字可以自取)的服務,data資料夾下會生成日誌檔案
PS:data資料夾下生成的xxx.err檔案裡可能會有預設密碼(我使用時沒有,可能是版本問題)。
7、啟動mysql服務
net start mysql
8、啟動成功後,登陸root使用者
mysql -u root -p
回車提示要輸入密碼,我使用時是沒有預設密碼的(如果有輸入預設密碼),所以直接回車進入mysql>。
9、更改root使用者密碼:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密碼';
好像由於版本關係對密碼的安全性要求變高了,儘量使用英文+數字+特殊符號來做密碼,避免報錯,如:admin3#
PS:如果出現報錯:mysql.user表不存在,是你的my.ini檔案中的data路徑沒寫。或者初始化出現錯誤(第5步)。
修改成功後,如果你無法用Navicat連線,是你的my.ini沒有配置(8.0版本加密方式發生改變,所以不配置是連線不了的,但cmd模式下登陸沒問題)
default_authentication_plugin=mysql_native_password
補救方法,先修改加密方法:
dos命令下登陸root使用者,輸入命令
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密碼' PASSWORD EXPIRE NEVER;
然後更改密碼:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼';
重新整理:
mysql> FLUSH PRIVILEGES;