遺忘 Root 密碼、字符集亂碼是 MySQL 運維高頻場景。本文提供 CentOS 6/7 通用的跳過授權表重置密碼流程,以及修改默認字符集為 UTF-8 的完整配置步驟與驗證方法。
vim /etc/my.cnf[mysqld]` 區段添加:skip-grant-tablesservice mysqld restart (CentOS 6)systemctl restart mysqld (CentOS 7)mysql (無需密碼直接進入)USE mysql;UPDATE user SET Password = PASSWORD('new-password') WHERE User = 'root'; (5.7+ 用 authentication_string)FLUSH PRIVILEGES;QUIT;/etc/my.cnf,註釋或刪除 skip-grant-tablesservice mysqld restart / systemctl restart mysqldmysql -u root -p'new-password'SHOW VARIABLES LIKE 'character%';character_set_server (服務端)、character_set_database、character_set_client、character_set_connection、character_set_results。cp /usr/share/doc/mysql-server-*/my-large.cnf /etc/my.cnf (路徑因版本而異,find / -name my-large.cnf 定位)vim /etc/my.cnf[mysqld]` 添加:character-set-server = utf8 (或 utf8mb4)[client]` 添加:default-character-set = utf8service mysqld restartSHOW 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。