首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 編碼查看與修改命令速查 + Root 密碼重置

     編輯:MySQL 資料庫相關知識

MySQL 編碼管理與 Root 密碼重置速查表

快速查看、修改字符集變量,以及最常用的 Root 密碼重置方法,適合運維日常參考。

一、字符集變量查看

-- 方式 1:精確匹配
SHOW VARIABLES LIKE 'character%';

-- 方式 2:status 命令包含編碼信息
STATUS;
-- 或 \s

關鍵變量含義:

二、會話級臨時修改(斷開失效)

SET NAMES utf8mb4;  -- 一鍵設置 client/connection/results

-- 或單獨設置
SET character_set_client = utf8mb4;
SET character_set_connection = utf8mb4;
SET character_set_results = utf8mb4;
SET collation_connection = utf8mb4_general_ci;

注意: SET character_set_server = utf8mb4 無效,服務端字符集只能通過配置文件修改並重啟生效。

三、持久化修改(配置文件 + 重啟)

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

[client]
default-character-set = utf8mb4

修改後:systemctl restart mysqld 或 service mysql restart。

四、JDBC 連接串指定編碼

jdbc:mysql://192.168.0.5:3306/test?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai

五、Root 密碼重置(三種方法)

方法 1:mysqladmin(已知舊密碼)

mysqladmin -u root -p'oldpass' password 'newpass'

方法 2:SQL 更新 user 表(需登入權限)

mysql -u root -p
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD('newpass') WHERE User='root';
mysql> FLUSH PRIVILEGES;

MySQL 5.7+ 欄位為 authentication_string,5.6 為 password。

方法 3:跳過授權表(忘記密碼/權限損壞)

# 1. 停止服務
systemctl stop mysqld

# 2. 啟動跳過授權
mysqld_safe --skip-grant-tables --skip-networking &

# 3. 免密登入修改
mysql -u root mysql
UPDATE user SET authentication_string=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;

# 4. 正常重啟
systemctl restart mysqld

MySQL 8.0+ 注意: PASSWORD() 已移除,改用:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
變量含義
character_set_server服務端默認字符集
character_set_database當前庫字符集
character_set_client客戶端發送數據編碼
character_set_connection連接層轉換編碼
character_set_results結果集返回編碼
collation_server / _database / _connection對應排序規則