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

讓 MySQL 徹底支援中文:從編譯安裝到字符集配置完整實踐

     編輯:MySQL 資料庫相關知識

問題背景

預設 MySQL 字符集非 GBK,導致中文開發頻繁在 GBK/UTF-8 轉換中消耗資源。本文記錄從源碼編譯安裝、配置字符集到驗證的完整流程(以 Slackware 為例,通用原理)。

1. 系統級中文支援

先確保 OS 支援中文(參考 LinuxSir.org Slackware 討論區),再卸載系統自帶 MySQL:
removepkg mysql

2. 建立專用用戶與目錄

groupadd mysql
mkdir /app/mysql && chmod 744 /app/mysql
useradd -G mysql -s /bin/bash -d /app/mysql mysql
chown -R mysql.mysql /app/mysql

3. 下載、編譯、安裝(指定 GBK 為預設字符集)

gunzip < mysql-VERSION.tar.gz | tar -xvf -
cd mysql-VERSION
CFLAGS="-O3 -mcpu=pentium3" \
CXX=gcc \
CXXFLAGS="-O3 -mcpu=pentium3 -felide-constructors" \
./configure --prefix=/app/mysql \
  --with-charset=gbk \
  --with-extra-charsets="gbk gb2312 big5 utf8" \
  --with-unix-socket-path=/etc/mysql.sock \
  --enable-local-infile \
  --enable-thread-safe-client \
  --enable-assembler \
  --with-client-ldflags=-all-static \
  --with-mysqld-ldflags=-all-static
make && make install

-mcpu 依 CPU 型號優化(pentium3/athlon-xp 等),顯著提升效能。

4. 初始化與啟動驗證

cp support-files/my-medium.cnf /etc/my.cnf
cd /app/mysql
bin/mysql_install_db --user=root
chown -R root .
chown -R mysql var
chgrp -R mysql .
./bin/mysqld_safe --user=root --default-character-set=gbk &
./bin/mysqladmin -u root password 'new-password'
./bin/mysql -u root --default-character-set=gbk -p
mysql> STATUS;
-- 關鍵輸出:
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk

四個 gbk 即代表成功。

5. 現有 UTF8 庫建立中文表(欄位級指定字符集)

CREATE TABLE `test`.`cn` (
  `zh` CHAR(10) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NOT NULL,
  `中文` INT(11) NOT NULL
) ENGINE = MYISAM;

CHARACTER SET 寫 gb2312 或 gbk 均可,gbk 較優。

6. 新庫建立時指定預設字符集(推薦)

CREATE DATABASE dbCN DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
CREATE TABLE `dbCN`.`cn` (
  `zh` CHAR(10) NOT NULL,
  `中文` INT(11) NOT NULL
) ENGINE = MYISAM;
INSERT INTO cn VALUES("真的?",1);

無需每欄聲明,簡潔無特殊痕跡。

7. 命令列無法輸入中文?

用 MySQL Query Browser 或程式碼執行腳本。驗證:
bin/mysql -u root --default-character-set=gbk -p → SELECT * FROM cn; 正確顯示中文。

8. 設定開機自啟動腳本

修改 /etc/rc.d/rc.mysqld:路徑指向 /app/mysql/bin/mysqld_safe,pid 檔路徑 /app/mysql/var/web.pid,啟動參數加 --user=root --default-character-set=gbk。

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