1.進入地址:https://dev.mysql.com/downloads/mysql/ 下載mysql-8.0.11-winx64
2.解壓zip包,並將解壓文件放入一個文件夾下,如圖:
3.配置環境變量,右鍵我的電腦,選擇 屬性---高級系統設置--環境變量(雙擊最上面的路徑後可以複製,然後粘貼,不用自己手動輸入)(目的是爲了避免在CMD窗口下操作時反覆切換路徑)
在Path下添加 D:\Program Files\mysql-8.0.11-winx64\bin
4.編寫配置文件
我們發現解壓後的目錄並沒有my.ini(或my-default.ini)文件,沒關係可以自行創建。在安裝根目錄下添加 my.ini,比如我這裏是:D:\Program Files\mysql-8.0.11-winx64\my-default.ini,寫入基本配置:
注意:data文件夾是初始化數據庫之後纔有的,會自動生成的,不用自己手動建立,my-default.ini文件默認是沒有的,自己可以編寫如下:
[mysqld]
# 設置3306端口
port=3306
# 設置mysql的安裝目錄
basedir=D:\Program Files\MySQL
# 設置mysql數據庫的數據的存放目錄
datadir=D:\Users\qiuzhiwen\MySQL\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
其中basedir和datadir可以根據自己的實際情況來決定!
5.按“win”鍵打開開始菜單,在搜索框中輸入“cmd”,在搜索結果中選中“命令提示符”程序,右鍵選擇“以管理員身份運行”
6.MySQL服務安裝及初始化
執行mysqld install命令當出現Service successfully installed時表示mysql服務安裝完成
注意:mysqld --install [服務名]
後面的服務名可以不寫,默認的名字爲 mysql。當然,如果你的電腦上需要安裝多個MySQL服務,就可以用不同的名字區分了,比如 mysql5 和 mysql8。
Mysql初始化
在MySQL安裝目錄的 bin 目錄下執行命令:
mysqld --initialize --console
執行完成後,會打印 root 用戶的初始默認密碼,比如:
- 1
- 2
注意!執行輸出結果裏面有一段: [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Ng*jbnKGd2_!其中root@localhost:後面的“Ng*jbnKGd2_!”就是初始密碼(不含首位空格)。在沒有更改密碼前,需要記住這個密碼,後續登錄需要用到。要是手賤,關快了,或者沒記住,那也沒事,刪掉初始化的 datadir 目錄,再執行一遍初始化命令,又會重新生成的。當然,也可以使用安全工具,強制改密碼,用什麼方法,自己隨意。
參考:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html
安裝完成之後,就可以通過命令net start mysql啓動MySQL的服務了。
7.更改密碼和密碼認證插件
進入D:\Program Files\mysql-8.0.11-winx64\bin路徑下,執行mysql -u root -p命令,然後輸入之前保存的密碼,我這裏是Ng*jbnKGd2_!
修改用戶密碼,在MySQL中執行命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
修改密碼驗證插件,同時修改密碼。
可以用 命令查看一下默認安裝的數據庫:
show databases;
use mysql;
show tables;
看到默認初始化了mysql數據庫,其中user表裏面存儲MySQL用戶信息。我們可以看一下默認MySQL用戶:
select user,host,authentication_string from mysql.user;
管理員root的host是localhost,代表僅限localhost登錄訪問。如果要允許開放其他ip登錄,則需要添加新的host。如果要允許所有ip訪問,可以直接修改成“%”
創建用戶:
CREATE USER 'xxh'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#';
#(需要注意:mysql8.0加密方式修改了)
#檢查用戶
select user, host, plugin, authentication_string from user\G;
授權遠程數據庫
#授權所有權限
GRANT ALL PRIVILEGES ON *.* TO 'xxh'@'%';
#授權基本的查詢修改權限,按需求設置
style=“list-style-image:none;list-style-type:none;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-indent:0px;”>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON . TO ‘xxh’@’%’;
查看用戶權限
show grants for ‘xxh’@’%’;
其他有用參考:https://www.jb51.net/article/173852.htm