1. 程式人生 > >MySql-8.0.12安裝,更改root使用者密碼,使用Navicat客戶端連線

MySql-8.0.12安裝,更改root使用者密碼,使用Navicat客戶端連線

MySql-8.0.12安裝,更改root使用者密碼,使用Navicat客戶端連線

很久沒用mysql,今天從官網上下載最新的mysql-8.0.12安裝,發現很多東西都不一樣了,在這裡記錄一下。Mysql安裝包下載:https://dev.mysql.com/downloads/mysql/。Mysql安裝包分為zip版本和msi版本(window7),下載msi需要大量時間,且網路不穩定的情況下很難下載,因此最好跟我一樣下載zip版本。
下載zip

zip包下載之後解壓,然後直接配置環境變數,在Path路徑中增加(注意,如果選擇先新增一個MYSQL_HOME變數,然後在新增Path變數的方式進行設定,有可能會配置失敗,這個我也不清楚什麼原因,如果配置後,cmd命令列還是顯示不是內部命令的錯誤,那建議直接在Path中新增絕對路徑):
環境變數

開啟cmd命令列(一定用管理員方式開啟,否則後續操作無效),輸入 mysqld –initialize-insecure –user=mysql 該命令會在你的mysql目錄下生成一個data資料夾,這個過程會停頓數秒。執行結束後在輸入mysqld install,生成mysql服務。如果沒有用管理員方式開啟cmd直接執行該命令,會報Install/Remove of the Service Denied!的錯誤。
這裡寫圖片描述
上面的步驟執行結束後,在window的服務中,我們就能看到預設的mysql服務。你可以右鍵該服務進行啟動,也可以在cmd中輸入net start mysql,啟動mysql服務。但很有可能會提示:服務名無效。這時,在mysql服務的屬性中對登入頁進行設定,輸入自己的主機的使用者名稱和密碼。
這裡寫圖片描述


之後在啟動即可成功啟動mysql服務。之後對root使用者的密碼進行修改,在cmd中輸入

mysql -u root -p

然後在輸入密碼時直接回車,進入sql。對mysql的user表進行查詢:

mysql> select host, user, authentication_string from mysql.user;

注意在新版本的mysql中,拋棄了password欄位,使用了新的authentication_string作為密碼欄位。

接下來是很關鍵的一步,如果修改錯誤又會產生 ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES) 的問題。

use mysql; 
update user set authentication_string='' where user='root'

先清空root對應的密碼,無論是否有,都建議先清空一次。然後用alter修改密碼。

ALTER user 'root'@'localhost' IDENTIFIED BY '新密碼'

注意以下幾點:①@’localhost’最好要新增上去,指定好root能訪問的域;②新密碼一定要包含數字、字母和特殊字元,否則還是產生1045錯誤。到此,mysql已經安裝好,並更改了root的預設密碼。但是我們往往會使用第三方的資料庫連線客戶端,例如非常好用的navicat,而由於新版本的mysql使用caching_sha2_password對密碼進行認證,因此會無法連線。所以在使用navicat之前執行以下命令後在連線。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
FLUSH PRIVILEGES;

這樣做的壞處就是,使用cmd無法進入mysql,只能強行重置root的命令才能進入,因為cmd的密碼認證方式和使用navicat連線的方式是不同的。如果想兩者都能登入,最好自己新建一個賬戶。