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

Debian Linux 手動安裝 MySQL 5.0 ICC 版 + UTF-8 全鏈路中文實戰

     編輯:MySQL 資料庫相關知識

在 Debian Etch 上手動部署 MySQL 5.0.27 ICC 優化版,並構建 **全鏈路 UTF-8 環境**(OS、MySQL、JDBC、Resin、Spring、Hibernate),實現中文零亂碼。本文記錄標準化安裝步驟與關鍵配置。

核心原則:全鏈路 UTF-8

  • MySQL 5.0+ 原生支持 UTF-8,但默認 latin1,**必須顯式配置**。
  • Java 內部 Unicode,JSP 頁面 UTF-8,JDBC 驅動 Connector/J 5.0.4+。
  • 應用服務器 Resin 3.1 + Spring 2.0 + Hibernate 3.2 驗證通過。

安裝步驟

  1. 下載 ICC 優化版
    MySQL-standard-5.0.27-Linux-i686-icc-glibc23.tar.gz(ICC 比 GCC 性能提升 10~20%)。
  2. 解壓並創建符號鏈接
    cd /usr/local
    tar zxvf MySQL-standard-5.0.27-Linux-i686-icc-glibc23.tar.gz
    ln -s mysql-standard-5.0.27-linux-i686-icc-glibc23 mysql
  3. 創建用戶組與用戶
    groupadd mysql && useradd -g mysql mysql
  4. 初始化數據目錄
    cd /usr/local/mysql && ./scripts/mysql_install_db --user=mysql
  5. 設置目錄權限
    chown -R root .
    chown -R mysql data
    chgrp -R mysql .
  6. 核心配置 /etc/my.cnf
    [mysqld]
    default-storage-engine = INNODB
    character-set-server = utf8
    collation-server = utf8_general_ci
    default-character-set = utf8
    skip-bdb
  7. 啟動服務
    ./bin/mysqld_safe --user=mysql &
  8. 初始化 root 密碼
    ./bin/mysqladmin -u root -p password 'new-password'
  9. 創建業務用戶與數據庫(強制 UTF-8)
    mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test-pwd';
    mysql> CREATE DATABASE testdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    mysql> GRANT ALL ON testdb.* TO 'test'@'localhost' IDENTIFIED BY 'test-pwd';
  10. 驗證字符集
    mysql> STATUS;
    mysql> SHOW VARIABLES LIKE '%char%';
    mysql> SHOW VARIABLES LIKE '%collation%';
    # 除 character_set_filesystem=binary 外,全部應為 utf8 / utf8_general_ci

中文驗證腳本

# 測試插入/查詢中文
mysql> USE testdb;
mysql> CREATE TABLE t (c VARCHAR(50)) ENGINE=InnoDB;
mysql> INSERT INTO t VALUES ('中文測試😀');
mysql> SELECT * FROM t;
# 正常顯示即成功

常見問題排查

現象原因修正
插入中文變 ???表/庫字符集非 UTF-8DROP DATABASE 重建,指定 DEFAULT CHARSET utf8
JDBC 讀出亂碼連接 URL 缺 characterEncodingjdbc:mysql://...?useUnicode=true&characterEncoding=utf8
JSP 頁面亂碼pageEncoding 未設置<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
Hibernate 映射異常hibernate.cfg.xml 缺連接參數...&useUnicode=true&characterEncoding=utf8

停止服務

./bin/mysqladmin -u root -p shutdown

總結

  1. **ICC 版二進制包**部署最快,無需編譯環境。
  2. /etc/my.cnf **所有字符集參數統一 utf8**(現代建議 utf8mb4)。
  3. **數據庫創建時指定 DEFAULT CHARSET**,避免表級繼承錯誤。
  4. **JDBC URL 必帶 characterEncoding**,應用層文件保存為 UTF-8 無 BOM。
  5. 驗證命令 STATUS、SHOW VARIABLES LIKE '%char%' 納入部署清單。

遵循此標準化流程,可在任何 Linux 發行版上實現 MySQL 中文零亂碼部署。

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