官網(wǎng)下載mysql8,https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip
1.解壓zip包到安裝目錄
比如我的安裝目錄是:D:\Program Files\MySQL
2.編寫配置文件
在D:\Program Files\MySQL目錄下創(chuàng)建my.ini文件

image.png
內(nèi)容如下:
[mysqld]
# 設置3306端口
port=3306
# 設置mysql的安裝目錄
basedir=D:\Program Files\MySQL
# 設置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=D:\Program Files\MySQL\Data
# 允許最大連接數(shù)
max_connections=200
# 允許連接失敗的次數(shù)。這是為了防止有人從該主機試圖攻擊數(shù)據(jù)庫系統(tǒng)
max_connect_errors=10
# 服務端使用的字符集默認為UTF8
character-set-server=utf8
# 創(chuàng)建新表時將使用的默認存儲引擎
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 是我數(shù)據(jù)庫數(shù)據(jù)文件要存放的位置,各項配置需要根據(jù)自己的環(huán)境進行配置。
使用default_authentication_plugin=mysql_native_password是為了后續(xù)navicat可以遠程連接
3.使用管理員身份打開CMD窗口初始化安裝
注意,一定要使用管理員身份
然后cd到D:\Program Files\MySQL\bin目錄下
執(zhí)行
mysqld --initialize --console
成功之后輸入如下:
D:\Program Files\MySQL\bin>mysqld --initialize --console
2018-12-04T03:26:47.785247Z 0 [System] [MY-013169] [Server] D:\Program Files\MySQL\bin\mysqld.exe (mysqld 8.0.13) initializing of server in progress as process 7748
2018-12-04T03:26:47.922126Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2018-12-04T03:27:05.431061Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: _nv04Hp%DXuc
2018-12-04T03:27:19.755014Z 0 [System] [MY-013170] [Server] D:\Program Files\MySQL\bin\mysqld.exe (mysqld 8.0.13) initializing of server has completed
注意,里面有一句
A temporary password is generated for root@localhost: _nv04Hp%DXuc
這個_nv04Hp%DXuc就是mysql為我們生成的一個臨時root密碼,務必記住
如果忘記了,就把mysql目錄刪掉重頭再來
4.安裝mysql服務
mysqld --install mysql
這里的mysql可以改為你想要自定義的,比如你機器上有很好幾個mysql,你可以起名為mysql8
安裝成功后,輸出是這樣的:
D:\Program Files\MySQL\bin>mysqld --install mysql
Service successfully installed.
5.啟動mysql服務
直接執(zhí)行
net start mysql
6.登錄連接mysql
在命令行輸入:
mysql -u root -p
然后會提示你輸入密碼
這里的密碼就是第2步讓你記住的密碼
登錄成功后輸出如下
D:\Program Files\MySQL\bin>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.13
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
可以執(zhí)行下
show databases
檢測下
7.修改root密碼
連接進入后,直接輸入下面語句,我這里是將默認密碼設置為123456,你可以修改為自己想要定義的.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
8.允許遠程連接訪問
執(zhí)行
use mysql;
然后查看下當前連接允許情況
select host, user, authentication_string, plugin from user;
我這里的輸出如下:
mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
4 rows in set (0.00 sec)
然后執(zhí)行
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
這個時候再查看下權限,輸出如下
mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| % | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
5 rows in set (0.00 sec)