1. 程式人生 > 資料庫 >mysql 8.0.12 安裝配置方法圖文教程

mysql 8.0.12 安裝配置方法圖文教程

記錄了mysql 8.0.12 的安裝配置方法,分享給大家。

一、安裝

1.從網上下載MySQL8.0.12版本,下載地址

2. 下載完成後解壓

我解壓的路徑是:D:\Java\mysql-8.0.12-winx64

3. 配置檔案

首先在解壓的路徑下檢視是否含有my.ini的檔案,如果沒有則新建一個,內容如下:

[mysqld]
# 設定3306埠
port=3306
# 設定mysql的安裝目錄
basedir=D:\Java\mysql-8.0.12-winx64
# 設定mysql資料庫的資料的存放目錄
datadir=D:\Java\mysql-8.0.12-winx64\data
# 允許最大連線數
max_connections=200
# 允許連線失敗的次數。這是為了防止有人從該主機試圖攻擊資料庫系統
max_connect_errors=10
# 服務端使用的字符集預設為UTF8
character-set-server=utf8
# 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
# 預設使用“mysql_native_password”外掛認證
default_authentication_plugin=mysql_native_password
[mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8
[client]
# 設定mysql客戶端連線服務端時預設使用的埠
port=3306
default-character-set=utf8

4. 資料庫配置

通過管理員許可權進入cmd(如果不是管理員許可權就會出現問題) ,進入MySQL安裝目錄的bin目錄下

接著輸入mysqld --initialize --console,就會出現以下畫面,其中標紅的為資料庫root使用者的初始密碼,一定要牢記,後面登入需要用到,當然要是不小心關掉了或者沒記住,刪掉初始化的 data目錄,再執行一遍初始化命令又會重新生成。

再然後輸入mysqld --install安裝mysql服務,輸入net start mysql啟動服務,備註:mysqld --remove是解除安裝MySQL服務,net stop mysql是停止服務。

5. 進入資料庫的配置

輸入mysql -u root -p後會讓你輸入密碼,密碼為前面讓你記住的密碼,輸入正確後就會出現如下介面,表示進入了MySQL命令模式。

接著更改密碼,輸入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';出現如下介面表示更改成功。

到此,MySQL8.0.12資料庫就安裝完成了。

二、資料庫相關配置

檢視預設資料庫:show databases;

選擇mysql資料庫:use mysql

檢視預設MySQL使用者:select host,user,authentication_string,plugin from user;

建立新使用者:CREATE USER '使用者名稱'@'host名稱' IDENTIFIED WITH mysql_native_password BY '密碼';

給新使用者授權:GRANT ALL PRIVILEGES ON *.* TO '使用者名稱'@'host名稱';

重新整理許可權:FLUSH PRIVILEGES;

三、問題詳解

1. MySQL8.0.12不能連線Navicat

原因:MySQL8.0與MySQL5.0所採用的加密方式規則不一樣,所以導致Navicat打不開。可通過select host,plugin from user;檢視密碼的規則。

如上圖,plugin這一列就是對應使用者的加密規則,可以看到我的root使用者的加密規則是:mysql_native_password,這是因為我已經設定過了,預設的是:caching_sha2_password,所以我們只需要將預設的caching_sha2_password改為mysql_native_password即可。

解決方案:輸入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';即可修改root使用者的加密規則以及密碼。

2. 授權出錯,顯示You are not allowed to create a user with GRANT

原因:在網上有很多教程說當出現The user specified as a definer ('root'@'%') does not exist時表示root使用者許可權不足,只需要執行GRANT ALL ON *.* TO 'root'@'%';就可以了,但是往往又會出現You are not allowed to create a user with GRANT的錯誤提示。這是因為GRANT ALL ON *.* TO 'root'@'%';這條語句中@'%'中的百分號其實是root使用者對應host的名稱,很多人並沒有注意到他的root使用者對應的其實是localhost,直接就執行了上面的語句,所以才會報錯。

解決方案:只要將GRANT ALL ON *.* TO 'root'@'%';中的%改為對應的host名稱即可,最後還要重新整理一下許可權FLUSH PRIVILEGES;

特別說明:網上說%表示通配所有的host,但是操作時並不成功,不明白是為什麼,我猜想可能與MySQL8.0版本有關係。

精彩專題分享:

mysql不同版本安裝教程

mysql5.7各版本安裝教程

mysql5.6各版本安裝教程

mysql8.0各版本安裝教程

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。