最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL8.x登陸root用戶突然提示mysql_native_password的實(shí)現(xiàn)

 更新時(shí)間:2024年08月26日 09:16:01   作者:weixin_42151614  
本文主要介紹了MySQL 8.x登陸root用戶突然提示mysql_native_password,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、在mysql 8.0x版本中,默認(rèn)的加密認(rèn)證方式從原來的mysql_native_password 變成了caching_sha2_password,如果我們不在my.cnf里面去設(shè)置加密認(rèn)證方式的話,它默認(rèn)用的就是caching_sha2_password

2、但現(xiàn)在有一個(gè)很奇怪的現(xiàn)象,不知道是何種原因,即便我們創(chuàng)建了用戶,并且也設(shè)置了caching_sha2_password,但是它默認(rèn)還是會(huì)以mysql_native_password作為認(rèn)證,這樣就會(huì)導(dǎo)致mysql_native_password模式被拒絕,因?yàn)槟J(rèn)情況下mysql只會(huì)接受caching_sha2_password,特別是在部分情況下,root用戶的localhost也會(huì)變成mysql_native_password,那這樣就會(huì)導(dǎo)致我們?cè)谑褂胢ysql -uroot -p -h localhost登陸的時(shí)候直接被拒絕掉,從而顯示ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded,這個(gè)具體問題不知道是什么原因?qū)е碌模竺嬖偃ザㄎ?,現(xiàn)在只是做個(gè)記錄,如果出現(xiàn)了這種情況應(yīng)該怎么做

3、由于我的mysql容器是以docker-compose來運(yùn)行的,如果我們r(jià)oot用戶被擋了,只能以安全模式跳過root認(rèn)證,需要修改docker-compose的配置文件如下

version: '3.8'

services:
  mysql82:
    image: mysql:8.4
    container_name: mysql
    ports:
      - "3306:3306"
    volumes:
      - /mnt/mysql/data:/var/lib/mysql
      - /mnt/mysql/logs:/var/log/mysql
      - /mnt/mysql/conf/my.cnf:/etc/mysql/my.cnf
    environment:
      MYSQL_ROOT_PASSWORD: "你自己的root密碼"
      TZ: Asia/Shanghai 
      command: --skip-grant-tables

在底部添加command: --skip-grant-tables即可,然后重啟容器

4、如果是宿主機(jī)安裝的方式,需要停止mysql的服務(wù),然后用安全模式啟動(dòng)

systemctl stop mysql

mysqld_safe --skip-grant-tables &

5、修改完畢后,登陸mysql

mysql -uroot -p 

這時(shí)候應(yīng)該是不需要密碼直接按回車就能進(jìn)入

6、查看用戶表,看下當(dāng)前有哪些用戶的認(rèn)證模式是:mysql_native_password

USE mysql;

SELECT User, Host, plugin FROM user;

不出意外的話,如果我們r(jià)oot用戶被擋了,那么認(rèn)證模式肯定變成了mysql_native_password
但是默認(rèn)情況下mysql_native_password插件又沒有啟動(dòng),所以我們?cè)谡DJ较聲?huì)被擋在外面,這就是問題所在

但問題是我們壓根就不知道m(xù)ysql_native_password是如何被啟動(dòng)的,或者root用戶為啥從原來的caching_sha2_password 變成了mysql_native_password

7、如果localhost 的root用戶的認(rèn)證模式變成了mysql_native_password,這也是為何我們沒辦法進(jìn)去的原因,我們需要把它改成caching_sha2_password,這樣我們就可以登錄了

USE mysql;

UPDATE user SET plugin='caching_sha2_password', authentication_string='' WHERE User='root' AND Host='localhost';

FLUSH PRIVILEGES;

注意:我們這里是直接修改root的認(rèn)證模式,然后authentication_string='' 設(shè)置的是一個(gè)空的字符串密碼,這里不可以直接指定你的root密碼,因?yàn)槭敲魑牡?,mysql不允許,也不接受,所以就先保留空,等后面進(jìn)入到正常模式再去修改

8、將mysql設(shè)置成正常模式

如果是docker-compose啟動(dòng)的,把command: --skip-grant-tables這一行推薦注釋掉(萬一以后還要出現(xiàn)直接打開即可)

然后docker-compose down  && docker-compose up -d 

宿主機(jī)安裝的情況下,直接ps aux | grep "mysqld_safe --skip-grant-tables"  
把這個(gè)進(jìn)程給kill掉,
然后systemctl start mysql正常啟動(dòng)即可

9、進(jìn)入到正常模式后,由于localhost的root用戶此時(shí)是空密碼,直接按回車就可以進(jìn)去,進(jìn)去之后立即修改root的密碼,密碼還是可以設(shè)置成原來的,然后在改密碼的時(shí)候再指定認(rèn)證類型為caching_sha2_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '這里最好是設(shè)置成你原來的root密碼';

10、修改完成之后,我們退出來重新登錄驗(yàn)證一下新修改的密碼能不能使用localhost登錄進(jìn)去

mysql -uroot -p

11、如果可以登陸的話,說明我們被擋在外面的問題就解決掉了,接下來就是把其他用戶認(rèn)證類型為mysql_native_password改成caching_sha2_password,這里主要是修改用戶的密碼和認(rèn)證方式,所以修改之前最好保持和知道之前原來的密碼,這樣可以減少很多不必要的操作,特別是如果這個(gè)用戶是某一個(gè)代碼里使用的

假設(shè)root用戶已經(jīng)登錄進(jìn)來了,說明root用戶的認(rèn)證模式已經(jīng)改回來了

接下來我們?cè)诓榭匆幌缕渌脩舻恼J(rèn)證情況

USE mysql;

SELECT User, Host, plugin FROM user;

根據(jù)結(jié)果提示,把mysql_native_password的用戶都改成caching_sha2_password

這里的修改認(rèn)證類型主要是通過修改該用戶的密碼,然后再重新指定認(rèn)證類型

但是在修改之前,最好將該用戶的密碼修改成和之前一樣的,這樣可以減少很多不必要的麻煩,當(dāng)然你也可以使用新的自定義密碼

#假如我現(xiàn)在需要將javatest這個(gè)用戶的認(rèn)證類型從原來的mysql_native_password改成caching_sha2_password,使用如下SQL語句即可,但是修改之前要看一下該用戶之前授權(quán)的遠(yuǎn)程IP地址是什么,要嚴(yán)格的對(duì)應(yīng)上,我這里是%,你們根據(jù)實(shí)際情況修改

ALTER USER 'javatest'@'%' IDENTIFIED WITH 'caching_sha2_password' BY '該用戶的新密碼';

#刷新權(quán)限
FLUSH PRIVILEGES;

12、到此完成

到此這篇關(guān)于MySQL 8.x登陸root用戶突然提示mysql_native_password的文章就介紹到這了,更多相關(guān)MySQL 8.x登陸root用戶突然提示mysql_native_password內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

宁阳县| 齐齐哈尔市| 方城县| 曲阳县| 江达县| 安泽县| 河南省| 家居| 洮南市| 城固县| 朝阳市| 彭水| 兴安县| 葫芦岛市| 韶关市| 日喀则市| 肥西县| 当阳市| 孟连| 丽水市| 乌苏市| 星座| 广西| 屏东县| 渭南市| 永平县| 文山县| 贡嘎县| 平遥县| 拉萨市| 永宁县| 思南县| 云霄县| 淮滨县| 乌拉特中旗| 色达县| 繁昌县| 进贤县| 英超| 青冈县| 台湾省|