LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2654|回复: 10

如果让mysql支持中文

[复制链接]
发表于 2005-10-15 23:37:33 | 显示全部楼层 |阅读模式
我的系统是gentoo 2005.1
mysql是4.1.14
将/etc/mysql/my.cnf里的相应地方全改成uft8,重启后用
mysql>show variables like 'character_set_%',可以看到各项都是utf8了,但是插入一条中文记录,不能显示,后改成gb2312还是不能显示.
请问这是什么,有什么办法吗>>?


将mysql里全部设置为UTF-8,然后系统locale也是如此.
 楼主| 发表于 2005-10-16 00:06:01 | 显示全部楼层
不知道my.cnf里这句对显示中文有没有影响?
language                                        = /usr/share/mysql/english
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-16 00:10:42 | 显示全部楼层
mysql> show variables like 'character_set_%';

+-------------------------------------+-------------------------------------+
| Variable_name                 | Value                              |
+-------------------------------------+-------------------------------------+
| character_set_client         | utf8                               |
| character_set_connection | utf8                               |
| character_set_database    | utf8                               |
| character_set_results       | utf8                                |
| character_set_server       | utf8                                 |
| character_set_system      | utf8                                 |
| character_sets_dir           | /usr/share/mysql/charsets/  |
+------------------------------------+--------------------------------------+
回复 支持 反对

使用道具 举报

发表于 2005-10-17 12:47:35 | 显示全部楼层
不能显示是什么概念?是说在终端select出来不乱码?

我记得我以前使用的默认配置,locale用utf8就可以支持。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-26 20:52:55 | 显示全部楼层
是select时不行,中文字段可以插入,但是select时该字段就是空白.
这是我的locale:
$ locale
LANG=en_US
LC_CTYPE=zh_CN.gbk
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
回复 支持 反对

使用道具 举报

发表于 2005-10-26 22:00:37 | 显示全部楼层
我的locale 是utf8,没问题
·

  1. cg@myhome:~$ locale
  2. LANG=zh_CN.UTF-8
  3. LC_CTYPE="zh_CN.UTF-8"
  4. LC_NUMERIC="zh_CN.UTF-8"
  5. LC_TIME="zh_CN.UTF-8"
  6. LC_COLLATE="zh_CN.UTF-8"
  7. LC_MONETARY="zh_CN.UTF-8"
  8. LC_MESSAGES="zh_CN.UTF-8"
  9. LC_PAPER="zh_CN.UTF-8"
  10. LC_NAME="zh_CN.UTF-8"
  11. LC_ADDRESS="zh_CN.UTF-8"
  12. LC_TELEPHONE="zh_CN.UTF-8"
  13. LC_MEASUREMENT="zh_CN.UTF-8"
  14. LC_IDENTIFICATION="zh_CN.UTF-8"
  15. LC_ALL=
复制代码


操作数据库
回复 支持 反对

使用道具 举报

发表于 2005-10-26 22:02:02 | 显示全部楼层
我的locale 是utf8,没问题
·

  1. cg@myhome:~$ locale
  2. LANG=zh_CN.UTF-8
  3. LC_CTYPE="zh_CN.UTF-8"
  4. LC_NUMERIC="zh_CN.UTF-8"
  5. LC_TIME="zh_CN.UTF-8"
  6. LC_COLLATE="zh_CN.UTF-8"
  7. LC_MONETARY="zh_CN.UTF-8"
  8. LC_MESSAGES="zh_CN.UTF-8"
  9. LC_PAPER="zh_CN.UTF-8"
  10. LC_NAME="zh_CN.UTF-8"
  11. LC_ADDRESS="zh_CN.UTF-8"
  12. LC_TELEPHONE="zh_CN.UTF-8"
  13. LC_MEASUREMENT="zh_CN.UTF-8"
  14. LC_IDENTIFICATION="zh_CN.UTF-8"
  15. LC_ALL=
复制代码


操作数据库

  1. cg@myhome:~$ mysql  -u root -p
  2. Enter password:
  3. Welcome to the MySQL monitor.  Commands end with ; or \g.
  4. Your MySQL connection id is 17 to server version: 5.0.13-rc-Debian_1-log

  5. Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

  6. mysql> use phpbb;
  7. Reading table information for completion of table and column names
  8. You can turn off this feature to get a quicker startup with -A

  9. Database changed
  10. mysql> select forum_name  from phpbb_forums;
  11. +--------------+
  12. | forum_name   |
  13. +--------------+
  14. | 电脑技术 |
  15. +--------------+
  16. 1 row in set (0.00 sec)

复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-29 09:19:04 | 显示全部楼层
将locale全部改成UTF-8后,数据库可以显示中文了,不过是不是只有将桌面变成中文才行呢?
回复 支持 反对

使用道具 举报

发表于 2005-10-31 10:21:32 | 显示全部楼层
MYSQL好象出了个中文版的!大家找找,我见过!
回复 支持 反对

使用道具 举报

发表于 2005-10-31 13:02:03 | 显示全部楼层
这个只要改一个地方:
在[mysqld]下面,端口定义的下面,加上这行
default-character-set=utf8
然后service mysqld restart
然后把你原来的建的数据库删除,重新建数据库,然后插入数据
数据库在建立的时候,你可以选择使用编码,选择GBK或者GB2312或者UTF8都可以,这就是在进行任何查询之前使用:set character UTF8 一下,一样的效果

多研究一下就知道了,这些东西很简单的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表