主頁 > 知識(shí)庫 > 淺談mysql8.0新特性的坑和解決辦法(小結(jié))

淺談mysql8.0新特性的坑和解決辦法(小結(jié))

熱門標(biāo)簽:高德地圖標(biāo)注模式 高德地圖標(biāo)注中心個(gè)人注冊 湘潭電銷機(jī)器人咨詢電話 外呼系統(tǒng)防封號(hào)違法嗎 外呼系統(tǒng)服務(wù) 400電話辦理都選易號(hào)網(wǎng) 電銷機(jī)器人針對(duì)的 寶應(yīng)電信400電話辦理費(fèi)用 如何在高德地圖標(biāo)注新地址

一、創(chuàng)建用戶和授權(quán)

在mysql8.0創(chuàng)建用戶和授權(quán)和之前不太一樣了,其實(shí)嚴(yán)格上來講,也不能說是不一樣,只能說是更嚴(yán)格,mysql8.0需要先創(chuàng)建用戶和設(shè)置密碼,然后才能授權(quán)。

#先創(chuàng)建一個(gè)用戶
create user 'hong'@'%' identified by '123123';

#再進(jìn)行授權(quán)
grant all privileges on *.* to 'hong'@'%' with grant option;

如果還是用原來5.7的那種方式,會(huì)報(bào)錯(cuò)誤:

grant all privileges on *.* to 'sroot'@'%' identified by '123123';

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123123'' at line 1

 二、MySQL8.0 的遠(yuǎn)程鏈接

MySQL8.0 安裝完成后出現(xiàn)無法遠(yuǎn)程鏈接的現(xiàn)象,這是因?yàn)镸ySQL8.0 只支持 localhost 訪問,我們必須設(shè)置一下才可以遠(yuǎn)程訪問。

具體設(shè)置步驟如下:

① 登錄MySQL

執(zhí)行命令為:mysql -u root -p 

回車后輸入密碼

② 選擇 mysql 數(shù)據(jù)庫

執(zhí)行命令為:use mysql;

查看mysql 數(shù)據(jù)庫中存儲(chǔ)的用戶信息的 user 表。

③ 查看mysql 數(shù)據(jù)庫的 user 表中當(dāng)前 root 用戶的相關(guān)信息

執(zhí)行命令為:select host,user,authentication_string,plugin from user;

執(zhí)行完命令后顯示一個(gè)表格, root 用戶的 host默認(rèn)顯示的 localhost,說明只支持本地訪問,不允許遠(yuǎn)程訪問。

④ 更改 host 的默認(rèn)配置

執(zhí)行命令為:update user set host='%' where user='root';

⑤ 刷新

執(zhí)行命令為:flush privileges;

之前以為這樣就行了,然后呢,在用navicat進(jìn)行mysql的遠(yuǎn)程連接時(shí),出現(xiàn)了彈窗報(bào)錯(cuò):


出現(xiàn)這個(gè)原因是mysql8 之前的版本中加密規(guī)則是mysql_native_password,而在mysql8之后,加密規(guī)則是caching_sha2_password, 解決問題方法有兩種,一種是升級(jí)navicat驅(qū)動(dòng),一種是把mysql用戶登錄密碼加密規(guī)則還原成mysql_native_password. 我用是第二種方式 :

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規(guī)則 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';#更新一下用戶的密碼
FLUSH PRIVILEGES; #刷新權(quán)限 

問題就解決了。

mysql8.0用戶密碼設(shè)置注意事項(xiàng)

在MySQL 8.0.11中,caching_sha2_password是默認(rèn)的身份驗(yàn)證插件,而不是以往的mysql_native_password。有關(guān)此更改對(duì)服務(wù)器操作的影響以及服務(wù)器與客戶端和連接器的兼容性的信息,請(qǐng)參閱caching_sha2_password作為首選的身份驗(yàn)證插件。(翻譯自https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html)

今天在新服務(wù)上配置安裝mysql8.0.11時(shí),像往常一樣設(shè)置mysql密碼,設(shè)置成功后在shell下輸入mysql -u root -p,再輸入密碼能正常進(jìn)入,但在phpmyadmin或直接用http://php.net/manual/zh/mysqli.real-connect.php上的連接,均提示無法連接,具體報(bào)錯(cuò)信息為

mysqli_real_connect(): The server requested authentication method unknown to the client [sha256_password]

搜了一圈,找到官方文檔才發(fā)現(xiàn)從8.0.11版本起,不再像mysql5.7及以前版本那樣,設(shè)置用戶密碼時(shí)默認(rèn)的驗(yàn)證方式為caching_sha2_password,如果發(fā)現(xiàn)升級(jí)mysql8.0.11后原有的程序不能連接mysql,可迅速在mysql command line client客戶端用下面的命令設(shè)置成mysql5.7及以前版本的密碼驗(yàn)證方式,同時(shí)MYSQL8.0.11下修改密碼的方式與原先也不大一樣,原先的部分修改密碼的命令在mysql8.0.11下不能使用。

> use mysql 

> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼'; 

> FLUSH PRIVILEGES; 

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • mysql遷移至8.0時(shí)的注意事項(xiàng)(小結(jié))
  • mysql8.0.20安裝與連接navicat的方法及注意事項(xiàng)
  • 使用JDBC連接Mysql 8.0.11出現(xiàn)了各種錯(cuò)誤的解決
  • 詳解關(guān)于MySQL 8.0走過的坑
  • MySql 8.0及對(duì)應(yīng)驅(qū)動(dòng)包匹配的注意點(diǎn)說明

標(biāo)簽:南充 賀州 馬鞍山 黃山 宿遷 蘭州 佛山 黔南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談mysql8.0新特性的坑和解決辦法(小結(jié))》,本文關(guān)鍵詞  淺談,mysql8.0,新特,性的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談mysql8.0新特性的坑和解決辦法(小結(jié))》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺談mysql8.0新特性的坑和解決辦法(小結(jié))的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章