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

解決mysql報錯You must reset your password using ALTER USER statement before executing this statement問題

 更新時間:2024年11月21日 15:47:40   作者:蝸牛去旅行吧  
文章介紹了在Linux系統(tǒng)中解決MySQL 5.7及以上版本root用戶密碼過期無法登錄的問題方法,以及如何處理系統(tǒng)權(quán)限表mysql.user結(jié)構(gòu)錯誤的問題

mysql報錯You must reset your password using ALTER USER statement before executing this statement

在 linux 中安裝好 MySQL 并完成初始化配置后,使用默認(rèn)生成的 root 用戶密碼登錄 MySQL 時,可能會出現(xiàn)無法執(zhí)行任何語句的情況

提示:

「You must reset your password using ALTER USER statement before executing this statement」

這是因為 MySQL 5.7 版本后,用戶表的密碼字段由 password 改為了 authentication_string,同時增加了一個 password_expired 字段來標(biāo)識密碼是否過期。

對于 root 用戶密碼過期的情況

通過以下步驟來修改root用戶的密碼

1. 停止所有的 MySQL 進(jìn)程。使用命令 `service mysql stop` 或 `killall mysql` 

2. 使用無驗證模式啟動 MySQL。執(zhí)行命令 `mysqld_safe --skip-grant-tables`

3. 使用 MySQL 客戶端登錄無需密碼。此時可以執(zhí)行任何語句。

4. 檢查用戶表,使用 `select * from mysql.user;`來查看用戶詳情。

5. 修改 root 用戶的密碼到期標(biāo)識和密碼。

6. 使用語句:

`update mysql.user set authentication_string=password('yourpassword'), password_expired='N' where user='root';` 

執(zhí)行 `flush privileges;`刷新 privileges 表。

查看結(jié)果

select authentication_string,password_expired from user where user='root';

8. 重新使用正常模式啟動 MySQL 服務(wù)。執(zhí)行 `service mysql start`

9. 使用新設(shè)置的 root 密碼登錄 MySQL 客戶端進(jìn)行操作。

以上步驟可以很方便地解決 MySQL 中 root 密碼過期無法登錄的問題。

重置密碼后需要更新整個項目中的連接配置,以確保正常訪問數(shù)據(jù)庫。

也可以調(diào)整my.cnf

#設(shè)置密碼過期時間為120天,設(shè)為0表示不過期
#default_password_lifetime = 120
default_password_lifetime = 0
#修改密碼強(qiáng)度策略,0為低策略
#validate_password_policy=0
#修改密碼長度
#validate_password_length=5
#跳過密碼校驗,無密碼登錄
#skip-grant-tables

其他報錯處理:

ERROR 1805 (HY000): Column count of mysql.user is wrong. Expected 45, found 46. The table is probably corrupted

這個錯誤表示MySQL的系統(tǒng)權(quán)限表mysql.user結(jié)構(gòu)與MySQL服務(wù)器預(yù)期的不匹配,可能是由于不兼容的升級或錯誤的操作導(dǎo)致該系統(tǒng)表被破壞。

解決方案有以下幾種

1.嘗試用mysqld自帶的修復(fù)模式先修復(fù)表結(jié)構(gòu):

mysqld --defaults-file=/etc/my.cnf --skip-grant-tables --user=mysql --skip-networking --safe-mode &

進(jìn)入安全模式后,執(zhí)行:

mysql> USE mysql;
mysql> REPAIR TABLE user;

如果能順利修復(fù),則重啟正常模式的mysqld服務(wù)器并登錄檢查。

2.如果上述修復(fù)沒有效果

可以嘗試重建mysql.user表:

mysqldump --add-drop-table --no-data mysql user > user.sql

退出,刪除mysql.user表:

DROP TABLE mysql.user;

然后重建:

SOURCE user.sql;

3.如果以上兩種方式仍然無法修復(fù)

則可以嘗試重新初始化MySQL數(shù)據(jù)目錄:

mysqld --defaults-file=/etc/my.cnf --initialize-insecure

這將移除所有數(shù)據(jù)重新初始化,之后需要重新導(dǎo)入數(shù)據(jù)。

4.最后的緊急情況下可以選擇完全卸載重裝MySQL服務(wù)器。

在修復(fù)過程中務(wù)必對現(xiàn)有數(shù)據(jù)做好備份。

修復(fù)表結(jié)構(gòu)本質(zhì)上是對表重建,如果有數(shù)據(jù)損壞可能導(dǎo)致部分?jǐn)?shù)據(jù)丟失。

如果不行的話,可以考慮用之前的備份重建。

產(chǎn)生這個錯誤一般是由于MySQL版本升級,權(quán)限表結(jié)構(gòu)發(fā)生變化,手動操作錯誤等導(dǎo)致。

我們需要格外小心謹(jǐn)慎操作系統(tǒng)權(quán)限表。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的用法解讀

    MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的用法解讀

    這篇文章主要介紹了MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 以數(shù)據(jù)庫字段分組顯示數(shù)據(jù)的sql語句(詳細(xì)介紹)

    以數(shù)據(jù)庫字段分組顯示數(shù)據(jù)的sql語句(詳細(xì)介紹)

    本篇文章是對以數(shù)據(jù)庫字段分組顯示數(shù)據(jù)的sql語句進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL存儲IP地址的三種方法

    MySQL存儲IP地址的三種方法

    在MySQL中,存儲IP地址通常有幾種推薦的方法,每種方法都有其優(yōu)缺點(diǎn),可以根據(jù)具體需求選擇合適的方式,本文給大家介紹了MySQL存儲IP地址的三種方法:使用VARCHAR類型,使用INT類型存儲IPv4和使用BINARY(16)或VARBINARY(16)存儲IPv6,需要的朋友可以參考下
    2024-07-07
  • MySQL數(shù)據(jù)庫操作DML?插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù)

    MySQL數(shù)據(jù)庫操作DML?插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫操作DML插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù),DML是指數(shù)據(jù)操作語言,英文全稱是Data?Manipulation?Language,用來對數(shù)據(jù)庫中表的數(shù)據(jù)記錄進(jìn)行更新
    2022-07-07
  • mysql數(shù)據(jù)庫navicat數(shù)據(jù)同步時誤刪除部分?jǐn)?shù)據(jù)的解決

    mysql數(shù)據(jù)庫navicat數(shù)據(jù)同步時誤刪除部分?jǐn)?shù)據(jù)的解決

    本文主要介紹了mysql數(shù)據(jù)庫navicat數(shù)據(jù)同步時誤刪除部分?jǐn)?shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • MySQL5.7限制general_log日志大小的實現(xiàn)

    MySQL5.7限制general_log日志大小的實現(xiàn)

    MySQL5.7.41中為避免通用查詢?nèi)罩緂eneral_log快速增長占用硬盤空間,可以通過定時任務(wù)執(zhí)行腳本進(jìn)行每日備份或清理,從而限制其大小,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • 詳解Windows10下載mysql的教程圖解

    詳解Windows10下載mysql的教程圖解

    本文通過圖文并茂的形式給大家介紹了Windows10下載mysql的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Mysql事務(wù)隔離級別原理實例解析

    Mysql事務(wù)隔離級別原理實例解析

    這篇文章主要介紹了Mysql事務(wù)隔離級別原理實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • MySQL實現(xiàn)分布式鎖的三種主流方案

    MySQL實現(xiàn)分布式鎖的三種主流方案

    MySQL 實現(xiàn)分布式鎖的核心是利用數(shù)據(jù)庫的原子性、唯一性約束或行級鎖機(jī)制,保證分布式系統(tǒng)中多個節(jié)點(diǎn)對共享資源的互斥訪問,解決跨進(jìn)程、跨服務(wù)器的并發(fā)競爭問題,以下是三種主流、可靠且覆蓋不同業(yè)務(wù)場景的實現(xiàn)方案,需要的朋友可以參考下
    2026-02-02
  • 利用frm和ibd文件恢復(fù)mysql表數(shù)據(jù)的詳細(xì)過程

    利用frm和ibd文件恢復(fù)mysql表數(shù)據(jù)的詳細(xì)過程

    總是遇到mysql服務(wù)意外斷開之后導(dǎo)致mysql服務(wù)無法正常運(yùn)行的情況,使用Navicat工具查看能夠看到里面的庫和表,但是無法獲取數(shù)據(jù)記錄,提示數(shù)據(jù)表不存在,所以本文給大家介紹了利用frm和ibd文件恢復(fù)mysql表數(shù)據(jù)的詳細(xì)過程,需要的朋友可以參考下
    2024-04-04

最新評論

郴州市| 呼图壁县| 长岛县| 合肥市| 西盟| 定安县| 朝阳市| 芜湖县| 宜城市| 疏附县| 榆林市| 富裕县| 客服| 铜陵市| 政和县| 额济纳旗| 金阳县| 天镇县| 嘉义县| 凤台县| 华安县| 巴南区| 祁阳县| 闽侯县| 三明市| 麻江县| 铜鼓县| 庐江县| 葫芦岛市| 长阳| 边坝县| 康保县| 西安市| 渝北区| 手游| 信丰县| 交口县| 阳朔县| 伊通| 新巴尔虎左旗| 泸西县|