MySQL 安裝完成不代表「可用」,必須通過服務註冊驗證、環境變數落地、目錄結構認知、預設編碼修正四大關卡,才能進入開發狀態。本文以 Windows 64 位為例,提供圖文級驗證清單與編碼遷移實操。
命令列驗證: sc query mysql 或 net start | find "MySQL"
Path → 編輯bin 目錄,例如:C:\Program Files\MySQL\MySQL Server 8.0\binmysql --version、mysqld --version 均可直接執行原理: PATH 落地使 mysql、mysqld、mysqladmin 等工具全域可用,無需切換目錄或輸入完整路徑。
| 目錄/檔案 | 用途 | 運維關注點 |
|---|---|---|
| bin/ | 可執行檔:mysqld.exe, mysql.exe, mysqladmin.exe, mysqldump.exe... | PATH 落地核心、版本升級替換點 |
| data/ | 資料檔:.ibd, .frm, .myd, .myi, redo log, binlog, 錯誤日誌 | 備份核心、磁碟規劃、權限隔離 |
| include/ | C API 標頭檔 | C/C++ 擴充開發 |
| lib/ | 靜態/動態庫 | 連結器搜尋路徑 |
| share/ | 錯誤訊息、字符集、時區檔、SQL 模板 | 多語言支援、時區更新 |
| *.ini | 配置檔:my.ini(預設)、my-default.ini(範本) | 參數調優、啟動配置唯一入口 |
MySQL Windows 安裝預設 character_set_server=latin1,嚴重不支援中文/Emoji,必須在建庫前修正。
# 1. [mysql] 客戶端預設字符集 [mysql] default-character-set = utf8mb4 # 2. [mysqld] 伺服器端字符集與排序規則 [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci # 3. 可選:確保客戶端連線協議一致 [client] default-character-set = utf8mb4
my.ininet stop mysql && net start mysqlmysql -u root -p -e "SHOW VARIABLES LIKE 'character_set%';"+--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\... | +--------------------------+----------------------------+
| 坑點 | 現象 | 根因 | 解法 |
|---|---|---|---|
| 編碼未改直接建庫 | 中文存入變 ??? 或亂碼 | 庫/表繼承 latin1 | 先改 my.ini 重啟,再建庫 |
| 只改 [mysql] 不改 [mysqld] | 客戶端顯示正常,實際存儲仍 latin1 | 伺服器端未生效 | 兩區塊必須同步修改 |
| 使用 utf8 而非 utf8mb4 | Emoji/生僻字存入報錯或截斷 | utf8 = utf8mb3 (3 位元組) | 統一 utf8mb4 + utf8mb4_unicode_ci |
| 修改 my.ini 未重啟 | 參數不生效 | 靜態參數需重啟 | net stop/start mysql |
# 1. 服務狀態
sc query mysql
# 2. 版本與編碼
mysql -u root -p -e "SELECT VERSION(); SHOW VARIABLES LIKE 'character_set%';"
# 3. 建庫測試
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS verify_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; SHOW CREATE DATABASE verify_db;"
# 4. 中文/Emoji 寫入測試
mysql -u root -p -e "USE verify_db; CREATE TABLE t (c VARCHAR(20)) CHARSET=utf8mb4; INSERT INTO t VALUES ('中文測試😀'); SELECT * FROM t;"
# 5. 連線參數測試
mysql -u root -p -h 127.0.0.1 -P 3306 -e "SELECT CONNECTION_ID();"
完成四大驗證關卡,MySQL Windows 環境才真正具備「生產就緒」基因。編碼修正是一次性投入、永久受益的高回報動作,切勿省略。