一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - 淺談mysql8.0新特性的坑和解決辦法(小結)

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

2019-06-22 16:18-白日夢想家- Mysql

這篇文章主要介紹了淺談mysql8.0新特性的坑和解決辦法(小結),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、創建用戶和授權

mysql8.0創建用戶和授權和之前不太一樣了,其實嚴格上來講,也不能說是不一樣,只能說是更嚴格,mysql8.0需要先創建用戶和設置密碼,然后才能授權。

#先創建一個用戶
create user 'hong'@'%' identified by '123123';

#再進行授權
grant all privileges on *.* to 'hong'@'%' with grant option;

如果還是用原來5.7的那種方式,會報錯誤:

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 的遠程鏈接

MySQL8.0 安裝完成后出現無法遠程鏈接的現象,這是因為MySQL8.0 只支持 localhost 訪問,我們必須設置一下才可以遠程訪問。

具體設置步驟如下:

① 登錄MySQL

執行命令為:mysql -u root -p 

回車后輸入密碼

② 選擇 mysql 數據庫

執行命令為:use mysql;

查看mysql 數據庫中存儲的用戶信息的 user 表。

③ 查看mysql 數據庫的 user 表中當前 root 用戶的相關信息

執行命令為:select host,user,authentication_string,plugin from user;

執行完命令后顯示一個表格, root 用戶的 host默認顯示的 localhost,說明只支持本地訪問,不允許遠程訪問。

④ 更改 host 的默認配置

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

⑤ 刷新

執行命令為:flush privileges;

之前以為這樣就行了,然后呢,在用navicat進行mysql的遠程連接時,出現了彈窗報錯:

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

出現這個原因是mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之后,加密規則是caching_sha2_password, 解決問題方法有兩種,一種是升級navicat驅動,一種是把mysql用戶登錄密碼加密規則還原成mysql_native_password. 我用是第二種方式 :

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

問題就解決了。

mysql8.0用戶密碼設置注意事項

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

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

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

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

> use mysql 

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

> FLUSH PRIVILEGES; 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: a男人的天堂久久a毛片 | 99热这里只有精品免费 | yellow高清免费 | 扒开放荡老师裙子猛烈的进入 | 亚洲日本aⅴ片在线观看香蕉 | chinesespanking调教 | 日本加勒比无码av | 精品欧美一区二区三区四区 | tube62hdxxxx日本 | 国产色视频一区二区三区 | 日韩免费视频播放 | 免看一级一片一在线看 | 韩日视频在线观看 | 男人桶女下面60分钟视频 | 久久伊人在 | 欧美综合国产精品日韩一 | 日本xxwwwxxxx | 亚洲一级特黄 | 国产第一综合另类色区奇米 | 91在线视频国产 | 亚洲欧美一 | sxx免费看视频在线播放 | 久久内在线视频精品mp4 | 小鸟酱视频在线观看 | 天天操天天舔 | 亚洲香蕉综合在人在线视看 | 99精品国产久热在线观看66 | 亚洲成人77777 | 久久99视热频国只有精品 | 亚洲第一福利网 | 亚洲性色永久网址 | 国产高清精品自在久久 | 风间由美理论片在线观看 | 久久精品热在线观看85 | 亚飞与亚基高清国语在线观看 | 日本男女视频 | 国产亚洲小视频 | 日你逼| 天美传媒传媒免费观看 | 成人网视频免费播放 | 午夜国产精品 |