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

macOS 完整移除 MySQL 與中文支援設定全攻略

     編輯:MySQL 綜合教學

前言

在 macOS 上開發時,MySQL 的安裝、移除與字元集配置常讓開發者頭痛。本文整理實測可行的完整移除步驟,並說明如何正確設定 UTF-8 中文支援,避免亂碼困擾。

一、徹底移除 macOS 上的 MySQL

官方安裝包 (DMG) 安裝的 MySQL 文件分散在多個目錄,單純拖曳至垃圾桶無法乾淨移除。請依序執行以下終端機指令(需 sudo 權限):

1. 停止所有 MySQL 相關進程

sudo pkill -f mysql
sudo launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 2>/dev/null

2. 刪除核心安裝目錄與檔案

sudo rm -rf /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf ~/Library/PreferencePanes/My*

3. 移除系統啟動項目與接收收據

sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*

4. 編輯 /etc/hostconfig(舊版 macOS 需要)

sudo vim /etc/hostconfig
# 找到並刪除或註解掉:MYSQLCOM=-YES-

5. 清理臨時檔案與 Socket

sudo rm -rf /tmp/mysql*
sudo rm -rf /var/run/mysqld

6. 移除使用者目錄下的配置檔(可選)

rm -f ~/.mysql_history
rm -f ~/.my.cnf
提醒:執行 rm -rf 請三思確認路徑,建議先用 ls 列出將被刪除的檔案。

二、設定 MySQL 完整支援中文 (UTF-8)

MySQL 8.0 預設已支援 utf8mb4,但舊版或特定安裝方式仍需手動配置。核心原則:資料庫、資料表、連線、客戶端全部統一為 utf8mb4。

1. 建立/修改配置檔 /etc/my.cnf

sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
sudo vim /etc/my.cnf

2. 關鍵配置區塊

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
skip-character-set-client-handshake  # 強制忽略客戶端字元集要求

# InnoDB 建議設定
default-storage-engine = InnoDB
innodb_file_per_table = 1

3. 重啟 MySQL 服務生效

sudo /usr/local/mysql/support-files/mysql.server restart

4. 驗證字元集設定

mysql -u root -p -e "SHOW VARIABLES LIKE 'character_set%'; SHOW VARIABLES LIKE 'collation%';"

預期輸出關鍵變數皆為 utf8mb4 或 utf8mb4_unicode_ci。

三、資料庫/資料表層面的字元集管理

建立新資料庫時指定字元集

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改既有資料庫/資料表字元集

ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

連線字串設定(以 PHP PDO 為例)

$dsn = "mysql:host=127.0.0.1;dbname=mydb;charset=utf8mb4";
$pdo = new PDO($dsn, $user, $pass, [
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"
]);

四、常見坑點與避雷指南

  • utf8 vs utf8mb4:MySQL 的 utf8 僅支援 3 位元組字元(不含 Emoji、部分生僻字),務必使用 utf8mb4。
  • collation 選擇:utf8mb4_unicode_ci 依 Unicode 標準排序(準確),utf8mb4_general_ci 較快但排序不精確。建議統一用 unicode_ci。
  • 舊資料遷移:若資料庫已含資料,CONVERT TO CHARACTER SET 會重寫資料,大表操作請離峰時段執行並先備份。
  • 客戶端工具:Navicat、DataGrip、MySQL Workbench 等 GUI 工具的連線屬性中,亦需將字元集設為 UTF-8/utf8mb4。

總結

macOS 上移除 MySQL 需清理 /usr/local、/Library、~/Library、/var/db/receipts 等多處殘留;中文支援的關鍵在於 my.cnf 統一設定 utf8mb4 並重啟服務。養成新建資料庫即指定字元集的習慣,可從根源杜絕亂碼問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved