1、安裝mysql
1.從網上下載MySQL8.0.12版本,下載地址sql
2. 下載完成後解壓數據庫
我解壓的路徑是:D:\Java\mysql-8.0.12-winx64bash
3. 配置文件加密
首先在解壓的路徑下查看是否含有my.ini的文件,若是沒有則新建一個,內容以下:.net
[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目錄下3d
接着輸入mysqld --initialize --console,就會出現如下畫面,其中標紅的爲數據庫root用戶的初始密碼,必定要牢記,後面登陸須要用到,固然要是不當心關掉了或者沒記住,刪掉初始化的 data目錄,再執行一遍初始化命令又會從新生成。code
再而後輸入mysqld --install安裝mysql服務,輸入net start mysql啓動服務,備註:mysqld --remove是卸載MySQL服務,net stop mysql是中止服務。server
5. 進入數據庫的配置
輸入mysql -u root -p後會讓你輸入密碼,密碼爲前面讓你記住的密碼,輸入正確後就會出現以下界面,表示進入了MySQL命令模式。
接着更改密碼,輸入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼'; 出現以下界面表示更改爲功。
到此,MySQL8.0.12數據庫就安裝完成了。
2、數據庫相關配置
查看默認數據庫: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;
3、問題詳解
1. MySQL8.0.12不能鏈接Navicat
緣由:MySQL8.0與MySQL5.0所採用的加密方式規則不同,因此致使 Navicat打不開。可經過select host, user, authentication_string, 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版本有關係。