程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL 中文化解析

MySQL 中文化解析

編輯:關於MYSQL數據庫

  由於系統自帶的MySQL默認字符集不是gbk,因此給數據庫的推廣應用以及中文程序的開發帶來極大的不便,在沒完沒了的GBK和UTF8的轉換過程中消耗了我們無數的精力以及系統的資源。

  先將讓slack支持中文,然後重新編譯MySQL,原來系統MySQL的要先卸載:

  login:root
  shell>removepkgMySQL
  shell>groupaddMySQL
  shell>cd/app
  shell>mkdirMySQL
  shell>chmod744MySQL
  shell>useradd-GMySQL-s
  /bin/bash–p/app/mysqlMySQL
  shell>chown-Rmysql.mysqlMySQL

  再下載MySQL4.x.x:

  shell>gunzip<MySQL-VERSION.tar.gz
  |tar-xvf-
  shell>cdMySQL-VERSION
  shell>CFLAGS="-O3-mcpu=pentium3"
  CXX=gcc
  XXFLAGS="-O3-mcpu=pentium3
  -felide-constructors"
  ./configure--prefix=/app/MySQL
  --with--charset=gbk
  --with-extra-charsets="gbkgb2312
  big5utf8"
  --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

  //-mcpu 根據CPU類型優化編譯,可以讓你的MySQL表現更好。可選項目很多:i386, i486, i586, i686, pentium, pentium-mmx, pentiumpro, pentium2, pentium3, pentium4, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-4, athlon-xp,athlon-mp,winchip-c6, winchip2 , c3。執行:shell> make。錯誤時候執行:shell> make clean。

  再回上一步:

  shell>makeinstall
  shell>cpsupport-files/my-medium.cnf/etc/my.cnf
  shell>cd/app/MySQL
  shell>bin/MySQL_install_db--user=root
  shell>chown-Rroot.
  shell>chown-RMySQLvar
  shell>chgrp-RMySQL.
  shell>./bin/MySQLd_safe--user=root
  --default-character-set=gbk&
  shell>./bin/MySQLadmin-uroot
  password'new-passWord'
  shell>./bin/MySQL-uroot
  --default-character-set=gbk-p
  MySQL>status
  ...
  Servercharacterset:gbk
  Dbcharacterset:gbk
  ClIEntcharacterset:gbk
  Conn.characterset:gbk
  ....

  看見characterset全是gbk就成功了。

  在UTF8字符集的老數據庫中,創建中文支持表腳本如下,對字段加上字符集說明:

  CREATETABLE`test`.`cn`(
  `zh`CHAR(10)CHARACTERSET
  gb2312COLLATEgb2312_chinese_ciNOTNULL,
  `中文`INT(11)NOTNULL
  )
  ENGINE=MYISAM;

  注:CHARACTER SET 寫GB2312和gbk都可以,gbk優於GB2312。

  對於新創建的數據庫加個默認字符集聲明GBK,就不用建表時候每個字段聲明了,這樣看起來簡單流暢,沒有特殊的痕跡,建議多采用這種方法。

  MySQL>CREATEDATABASEdbCNDEFAULT
  CHARACTERSETgbkCOLLATEgbk_chinese_ci;
  CREATETABLE`dbCN`.`cn`(
  `zh`CHAR(10)NOTNULL,
  `中文`INT(11)NOTNULL
  )
  ENGINE=MYISAM;
  MySQL>insertintocnvalues("真的?",1);

  注:如果這些腳本用bin/mysql命令行是輸入不了,可以用MySQL query Browser,或者編程執行。

  shell>bin/MySQL-uroot--default-character-set=gbk-p
  MySQL>usetest
  MySQL>select*fromcn;
  +--------+------+
  |zh|中文|
  +--------+------+
  |真的?|1|
  +--------+------+
  1rowinset(0.00sec)
  -----------------------------

  最後修改啟動文件/etc/rc.d/rc.mysqld,改路徑/app/mysql/bin/mysqld_safe,改路徑/app/mysql/var/web.pid最後/app/mysql/bin/MySQLd_safe 後面加入 --user=root --default-character-set=gbk。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved