中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > Mysql
推荐:手把手让你的MySQL完全中文化
作者:010032 时间:2007-06-21 15:44 出处:ccidnet.com 责编:月夜寒箫
              摘要:推荐:手把手让你的MySQL完全中文化

系统自带的MySQL默认字符集不是gbk,因此给数据库的推广应用以及中文程序的开发带来极大的不便,在没完没了的GBK和UTF8的转换过程中消耗了我们无数的精力以及系统的资源。

 

先将让slack支持中文,然后重新编译MySQL,原来系统MySQL的要先卸载:

login:root
            shell> removepkg mysql
            shell> groupadd mysql
            shell> cd /app
            shell> mkdir mysql
            shell> chmod 744 mysql
            shell> useradd -G mysql -s
            /bin/bash –p /app/mysql mysql
            shell> chown -R mysql.mysql mysql

再下载MySQL4.x.x:

shell> gunzip < mysql-VERSION.tar.gz
            | tar -xvf -
            shell> cd mysql-VERSION
            shell> CFLAGS="-O3 -mcpu=pentium3"             CXX=gcc             XXFLAGS="-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

//-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> make install
            shell> cp support-files/my-medium.cnf /etc/my.cnf
            shell> cd /app/mysql
            shell> bin/mysql_install_db --user=root
            shell> chown -R root .
            shell> chown -R mysql var
            shell> chgrp -R mysql .
            shell> ./bin/mysqld_safe --user=root
            --default-character-set=gbk &
            shell> ./bin/mysqladmin -u root
            password 'new-password'
            shell> ./bin/mysql -u root
            --default-character-set=gbk -p
            mysql> status
            ...
            Server characterset: gbk
            Db characterset: gbk
            Client characterset: gbk
            Conn. characterset: gbk
            ....
看见characterset全是gbk就成功了。

 

在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优于GB2312。

 

对于新创建的数据库加个默认字符集声明GBK,就不用建表时候每个字段声明了,这样看起来简单流畅,没有特殊的痕迹,建议多采用这种方法。

mysql> 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;
            mysql> insert into cn values("真的?",1);
注:如果这些脚本用bin/mysql命令行是输入不了,可以用mysql query Browser,或者编程执行。

 

shell> bin/mysql -u root --default-character-set=gbk -p
            mysql>use test
            mysql> select * from cn;
            +--------+------+
            | zh | 中文 |
            +--------+------+
            | 真的?| 1 |
            +--------+------+
            1 row in set (0.00 sec)
            -----------------------------

最后修改启动文件/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。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有