首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Linux MySQL 運維必備:Root 密碼重置與默認字符集修改 (CentOS 6/7 通用)

     編輯:MySQL 綜合教學

Linux MySQL 運維必備:Root 密碼重置與默認字符集修改

遺忘 Root 密碼、字符集亂碼是 MySQL 運維高頻場景。本文提供 CentOS 6/7 通用的跳過授權表重置密碼流程,以及修改默認字符集為 UTF-8 的完整配置步驟與驗證方法。

一、忘記 Root 密碼 - 跳過授權表重置

  1. 修改配置文件:
    vim /etc/my.cnf
    在 `[mysqld]` 區段添加:
    skip-grant-tables
  2. 重啟 MySQL 服務:
    service mysqld restart (CentOS 6)
    systemctl restart mysqld (CentOS 7)
  3. 免密登錄並修改密碼:
    mysql (無需密碼直接進入)
    USE mysql;
    UPDATE user SET Password = PASSWORD('new-password') WHERE User = 'root'; (5.7+ 用 authentication_string)
    FLUSH PRIVILEGES;
    QUIT;
  4. 恢復配置並重啟:
    編輯 /etc/my.cnf,註釋或刪除 skip-grant-tables
    service mysqld restart / systemctl restart mysqld
  5. 驗證新密碼:
    mysql -u root -p'new-password'

二、修改默認字符集為 UTF-8 (解決中文亂碼)

  1. 查看當前字符集:
    SHOW VARIABLES LIKE 'character%';
    關鍵變量:character_set_server (服務端)、character_set_database、character_set_client、character_set_connection、character_set_results。
  2. 複製模板配置:
    cp /usr/share/doc/mysql-server-*/my-large.cnf /etc/my.cnf (路徑因版本而異,find / -name my-large.cnf 定位)
  3. 編輯 my.cnf 設置 UTF-8:
    vim /etc/my.cnf
    在 `[mysqld]` 添加:character-set-server = utf8 (或 utf8mb4)
    在 `[client]` 添加:default-character-set = utf8
  4. 重啟服務生效:
    service mysqld restart
  5. 驗證修改:
    SHOW VARIABLES LIKE 'character%';
    確認關鍵變量均為 utf8 / utf8mb4。

關鍵變量含義速查

變量含義
character_set_server服務器級默認字符集 (新建庫/表繼承)
character_set_database當前數據庫字符集
character_set_client客戶端發送數據的字符集
character_set_connection連接層字符集 (服務器將客戶端數據轉換為此集)
character_set_results查詢結果返回給客戶端的字符集

最佳實踐建議

  • **新項目強制使用 utf8mb4** (支持 Emoji/生僻字),配套 Collation: utf8mb4_general_ci 或 utf8mb4_0900_ai_ci (8.0+)。
  • 應用層連接串顯式指定:jdbc:mysql://...?characterEncoding=utf8mb4 / SET NAMES utf8mb4。
  • 定期備份前驗證字符集一致性,避免跨版本遷移亂碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved