`
zengjinliang
  • 浏览: 305468 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

让MYSQL彻底支持中文

阅读更多

提要:系统自带的mysql默认字符集不是gbk,因此给数据库的推广应用以及中文程序的开发带来极大的不便,在没完没了的GBK和UTF8的转换过程中消耗了我们无数的精力以及系统的资源.经过摸索尝试解决了中文支持问题,经验与大家分享一下.

   先将让slack支持中文,方法可以看"linuxsir.org 之Slackware讨论区",然后重新编译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类型优化编译,可以让你的mysq表现更好!可选项目很多: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

分享到:
评论

相关推荐

    让MySql彻底支持中文_解决mysql数据库乱码

    "让MySql彻底支持中文_解决mysql数据库乱码"这个主题聚焦于如何确保MySQL正确地存储和显示中文字符,避免出现乱码情况。这通常涉及到MySQL服务器的配置、数据表的编码设置以及客户端连接的字符集设定。 首先,我们...

    如何让你的MySQL数据库彻底与中文联姻

    本文将详细介绍如何使MySQL彻底支持中文,尤其是GBK字符集,以简化开发过程和提高系统效率。 首先,解决MySQL中文支持问题通常涉及修改字符集设置。在描述中提到,系统自带的MySQL不支持GBK,而GBK是常用的中文编码...

    MySQL + JDBC彻底解决中文乱码问题

    ### MySQL + JDBC 彻底解决中文乱码问题 #### 一、引言 在使用 MySQL 数据库进行数据存储时,可能会遇到中文字符显示为乱码的问题。这种情况通常出现在数据库连接参数配置不当或数据库本身的字符集设置不正确时。...

    mysql5.5版本64位及中文乱码彻底解决方法2句命令ok

    MySQL支持多种字符集,例如`gbk`、`utf8`等,它们分别用于存储不同语言的字符。在处理中文时,通常推荐使用`utf8`或`utf8mb4`,因为它们能够兼容大部分中文字符。`utf8mb4`是`utf8`的超集,能够处理更多的Unicode...

    Mysql运行SQL语句中文乱码问题的解决方法

    本文将详细介绍如何彻底解决MySQL运行SQL语句中文乱码的问题。 #### 一、理解乱码产生的原因 在探讨解决方案之前,我们先来了解一下为什么会出现乱码问题。乱码主要是由于字符集不匹配导致的。当MySQL处理中文字符...

    mysql配置

    为了支持中文显示,通常需要设置 MySQL 的字符集为 utf8 或其他支持中文的编码格式。 1. **修改 my.ini 文件**: - 在 `[mysqld]` 部分中,添加或修改以下行: ```ini character_set_server=utf8 ``` - 同样在...

    mysql中文手册以及安装卸载图解

    索引是提高查询速度的关键,MySQL支持多种类型的索引,如B-Tree、Hash、Full-text等。正确地创建和使用索引可以显著提升数据库性能,但过度使用也可能导致写操作变慢。 权限和安全是另一个重要主题。MySQL的GRANT和...

    MySQL数据库技术实验报告(实验1 MySQL的使用)

    在配置MySQL时,为了支持中文字符,需要在安装过程中修改字符集为GBK或GB2312。 通过这次实验,我们不仅学习了MySQL的安装和基本操作,还了解了数据库、表和数据库对象的概念,以及如何使用MySQL客户端进行交互。...

    Mysql彻底解决中文乱码问题的方案(Illegal mix of collations for operation)

    MySQL中的中文乱码问题往往源于字符集设置不一致或不恰当,这会导致"Illegal mix of collations for operation"的错误。为了解决这个问题,我们需要理解MySQL中的几个关键字符集概念,并采取相应的配置措施。 1. **...

    怎样配置mysql

    在安装MySQL之前,需确保彻底移除旧版本的MySQL数据库及相关配置,包括注册表信息等,以免新旧版本之间产生冲突。此外,虽然部分用户可能会倾向于选择SQL Server 2000这类产品,因其安装更为便捷,但从长远发展和...

    关于MySQL实验报告填写

    2. 字符集设置:在安装过程中,选择支持中文的字符集,如 gb2312 或 GBK,确保能正确处理中文数据。 实验小结强调了安装过程中的常见问题和解决方案,如彻底卸载、字符集选择等,同时也提醒了在进行数据库操作前...

    MySQL基础学习笔记.docx

    最后,清理注册表中与MySQL相关的键值,确保彻底移除MySQL的相关设置。 安装MySQL时,应避免使用中文或特殊字符作为安装目录,并设置合适的端口号,如3306。推荐选择InnoDB存储引擎,因为它支持事务处理,自MySQL ...

    PHP+MYSQL使用UTF8中文乱码终极解决办法

    本篇文章将详细介绍如何彻底解决PHP+MySQL环境下中文乱码的问题。通过以下几个关键步骤,我们可以确保从前端到后端,整个系统都支持UTF-8编码,从而避免中文乱码的出现。 #### 步骤一:前端问题 **目标**:确保前端...

    MySQL的卸载与安装教程.pdf

    - 设置字符集为`utf8`以支持中文。 - 设置服务名称,例如`MySQL5.5`。 - 配置密码策略,并设置一个安全的管理员密码。 #### 四、注意事项 - 在整个卸载和安装过程中,确保服务完全停止后再进行操作。 - 在修改安装...

    第02章_MySQL环境搭建1

    - 修改my.ini文件的原因:默认情况下,MySQL使用的字符集为`latin1`,这在处理中文时可能会出现问题。 - 修改内容: - 在 `[mysql]` 节点下添加 `default-character-set=utf8`。 - 在 `[mysqld]` 节点下添加 `...

    MySQL乱码终极解决方案

    1. 确保MySQL服务器配置正确,全局字符集设置为支持中文的字符集,如`utf8`或`utf8mb4`。 2. 创建数据库时指定正确的字符集,如`CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_general_ci;` 3. 创建表时...

Global site tag (gtag.js) - Google Analytics