記錄個(gè)人安裝Mysql8.0.13的過(guò)程,以及踩過(guò)的坑
一、安裝
1.從網(wǎng)上下載MySQL8.0.12版本,[下載地址](https://dev.mysql.com/downloads/mysql/)
將下載的文件解壓,我解壓的路徑是:C:\app\mysql-8.0.13-winx64
2.配置系統(tǒng)環(huán)境變量

3. 配置文件
首先在解壓的路徑下查看是否含有my.ini的文件,如果沒(méi)有則新建一個(gè),內(nèi)容如下:
[mysql]
# 設(shè)置mysql客戶(hù)端默認(rèn)字符集
default-character-set=utf8
[mysqld]
#設(shè)置3306端口
port = 3306
# 設(shè)置mysql的安裝目錄
basedir=C:/app/mysql-8.0.13-winx64
# 設(shè)置mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄
datadir=C:/app/mysql-8.0.13-winx64/data
# 允許最大連接數(shù)
max_connections=500
default_authentication_plugin=mysql_native_password
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8
# 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎
default-storage-engine=INNODB
4. 數(shù)據(jù)庫(kù)配置
通過(guò)管理員權(quán)限進(jìn)入cmd(如果不是管理員權(quán)限就會(huì)出現(xiàn)問(wèn)題) ,進(jìn)入MySQL安裝目錄的bin目錄下,并執(zhí)行安裝命令mysqld --initialize --console,就會(huì)出現(xiàn)以下畫(huà)面,其中標(biāo)紅的為數(shù)據(jù)庫(kù)root用戶(hù)的初始密碼,一定要牢記,后面登錄需要用到,當(dāng)然要是不小心關(guān)掉了或者沒(méi)記住,刪掉初始化的 data目錄,再執(zhí)行一遍初始化命令又會(huì)重新生成。

此處坑點(diǎn):提示“找不到msvcp140.dll”* ,解決方案見(jiàn)采坑記錄。
再然后輸入mysqld --install安裝mysql服務(wù),輸入net start mysql啟動(dòng)服務(wù),備注:mysqld --remove是卸載MySQL服務(wù),net stop mysql是停止服務(wù)。

5. 進(jìn)入數(shù)據(jù)庫(kù)的配置
輸入mysql -u root -p后會(huì)讓你輸入密碼,密碼為前面讓你記住的密碼,輸入正確后就會(huì)出現(xiàn)如下界面,表示進(jìn)入了MySQL命令模式。

接著更改密碼,輸入ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密碼'; 出現(xiàn)如下界面表示更改成功。

此處如果提示You must reset your password using ALTER USER...則需要輸入
SET PASSWORD = '新密碼';
到此,MySQL8.0.13數(shù)據(jù)庫(kù)就安裝完成了。
創(chuàng)建新用戶(hù):
CREATE USER '用戶(hù)名'@'host名稱(chēng)' IDENTIFIED WITH mysql_native_password BY '密碼';
給新用戶(hù)授權(quán):
GRANT ALL PRIVILEGES ON *.* TO '用戶(hù)名'@'host名稱(chēng)';
刷新權(quán)限:
FLUSH PRIVILEGES;
采坑記錄
1.提示“找不到msvcp140.dll”
是沒(méi)有安裝VC++2015版運(yùn)行庫(kù)導(dǎo)致的(Microsoft Visual C++ 2015 Redistributable),下載地址https://www.microsoft.com/en-us/download/details.aspx?id=53587。點(diǎn)擊download里面有兩個(gè)exe文件,一個(gè)64位的一個(gè)32位的。下載安裝之后,成功解決問(wèn)題
2.不能連接Navicat
原因:MySQL8.0與MySQL5.0所采用的加密方式規(guī)則不一樣,所以導(dǎo)致 Navicat打不開(kāi)??赏ㄟ^(guò)select host, user, authentication_string, plugin from user;查看密碼的規(guī)則。
如上圖,plugin這一列就是對(duì)應(yīng)用戶(hù)的加密規(guī)則,可以看到我的root用戶(hù)的加密規(guī)則是:mysql_native_password,這是因?yàn)槲乙呀?jīng)設(shè)置過(guò)了,默認(rèn)的是:caching_sha2_password,所以我們只需要將默認(rèn)的caching_sha2_password改為mysql_native_password即可。
解決方案:輸入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';即可修改root用戶(hù)的加密規(guī)則以及密碼。
2. 授權(quán)出錯(cuò),顯示You are not allowed to create a user with GRANT
原因:在網(wǎng)上有很多教程說(shuō)當(dāng)出現(xiàn)The user specified as a definer ('root'@'%') does not exist時(shí)表示root用戶(hù)權(quán)限不足,只需要執(zhí)行GRANT ALL ON . TO 'root'@'%';就可以了,但是往往又會(huì)出現(xiàn)You are not allowed to create a user with GRANT的錯(cuò)誤提示。這是因?yàn)?strong>GRANT ALL ON . TO 'root'@'%';這條語(yǔ)句中@'%'中的百分號(hào)其實(shí)是root用戶(hù)對(duì)應(yīng)host的名稱(chēng),很多人并沒(méi)有注意到他的root用戶(hù)對(duì)應(yīng)的其實(shí)是localhost,直接就執(zhí)行了上面的語(yǔ)句,所以才會(huì)報(bào)錯(cuò)。
解決方案:只要將GRANT ALL ON . TO 'root'@'%';中的%改為對(duì)應(yīng)的host名稱(chēng)即可,最后還要刷新一下權(quán)限FLUSH PRIVILEGES; **。
