linux下部署mysql5解决中文问题

        以下是本人在linux下部署myslq5数据库问题: 

        一、包含中文字符的脚本无法通过mysql客户端导入到mysql数据库。

        二、包含中文字符的表数据内容无法插入到mysql数据库。

解决方法:将字符集改为utf8

 

登录mysql客户端输入

 

mysql >  SHOW CHARACTER  SET ;

 

用SHOW CHARACTER SET查看所安装的字符集。如下:

 

+ -- --------+-----------------------------+---------------------+--------+
|  Charset   |  Description                  |   Default  collation    |  Maxlen  |
+ -- --------+-----------------------------+---------------------+--------+
|  dec8      |   DEC  West European            |  dec8_swedish_ci      |        1   |  
|  cp850     |  DOS West European            |  cp850_general_ci     |        1   |  
|  hp8       |  HP West European             |  hp8_english_ci       |        1   |  
|  koi8r     |  KOI8 - R Relcom Russian        |  koi8r_general_ci     |        1   |  
|  latin1    |  cp1252 West European         |  latin1_swedish_ci    |        1   |  
|  latin2    |  ISO  8859 - 2  Central European  |  latin2_general_ci    |        1   |  
|  swe7      |  7 bit  Swedish                 |  swe7_swedish_ci      |        1   |  
|   ascii      |  US  ASCII                      |  ascii_general_ci     |        1   |  
|  hebrew    |  ISO  8859 - 8  Hebrew            |  hebrew_general_ci    |        1   |  
|  koi8u     |  KOI8 - U Ukrainian             |  koi8u_general_ci     |        1   |  
|  greek     |  ISO  8859 - 7  Greek             |  greek_general_ci     |        1   |  
|  cp1250    |  Windows Central European     |  cp1250_general_ci    |        1   |  
|  latin5    |  ISO  8859 - 9  Turkish           |  latin5_turkish_ci    |        1   |  
|  armscii8  |  ARMSCII - 8  Armenian           |  armscii8_general_ci  |        1   |  
|  utf8      |  UTF - 8   Unicode                 |  utf8_general_ci      |        3   |  
|  cp866     |  DOS Russian                  |  cp866_general_ci     |        1   |  
|  keybcs2   |  DOS Kamenicky Czech - Slovak   |  keybcs2_general_ci   |        1   |  
|  macce     |  Mac Central European         |  macce_general_ci     |        1   |  
|  macroman  |  Mac West European            |  macroman_general_ci  |        1   |  
|  cp852     |  DOS Central European         |  cp852_general_ci     |        1   |  
|  latin7    |  ISO  8859 - 13  Baltic           |  latin7_general_ci    |        1   |  
|  cp1251    |  Windows Cyrillic             |  cp1251_general_ci    |        1   |  
|  cp1256    |  Windows Arabic               |  cp1256_general_ci    |        1   |  
|  cp1257    |  Windows Baltic               |  cp1257_general_ci    |        1   |  
|   binary     |   Binary  pseudo charset        |   binary                |        1   |  
|  geostd8   |  GEOSTD8 Georgian             |  geostd8_general_ci   |        1   |  
+ -- --------+-----------------------------+---------------------+--------+

 因为没有安装到gb2312所以本人都用utf8来解决。

用命令

[root@GMCC ~] #  mysql --help

 

查看到mysql启动读取的配置文件为:

 

Default options are read from the following  files  in the given order:
/ etc / my . cnf ~ /. my . cnf  / usr / local / etc / my . cnf 

 

 于是编辑/etc/my.cnf 

 

找到客户端配置[client] 在下面添加
default-character-
set = utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-
set = utf8 默认字符集为utf8
init_connect
= ' SET  NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

修改好后,重新启动mysql 即可,查询一下show variables like 'character%'
;

登录mysql,输入

show variables like 'character%';

+--------------------------+----------------------------+
|  Variable_name  |  Value  |
+--------------------------+----------------------------+
|  character_set_client  |  utf8  |
|  character_set_connection  |  utf8  |
|  character_set_database  |  utf8  |
|  character_set_filesystem  |  binary  |
|  character_set_results  |  utf8  |
|  character_set_server  |  utf8  |
|  character_set_system  |  utf8  |
|  character_sets_dir  |   / usr / share / mysql / charsets /   |
+--------------------------+----------------------------+

 

修改完毕,重启一下mysql。

命令如下:

 

[root@GMCC ~] #   mysqladmin -uroot  shutdown
[root@GMCC ~]# mysqld_safe &
或者
    [root@GMCC ~]# /etc/init.d/mysql restart

关键是脚本修改:

现在已建立mydata1 数据的脚本为例,将脚本修改为:

drop   database   if   exists  mydata1 ;
CREATE   DATABASE   IF   NOT   EXISTS  mydata1 default  charset utf8 COLLATE utf8_general_ci;
use  mydata1 ;
SET   CHARACTER   SET  utf8;
SET  collation_connection  =  utf8_general_ci;

 

因为本人在windows xp上通过ssh登录linux,所以用UltraEdit-32打开脚本,然后“文件”-->“转换”-->“ASC2转UTF-8(Unicode编辑”。

将文件上传到linux服务器上,然后登陆mysql客户端。

输入:

 

mysql >  source /opt/create.sql

那样就将含有中文的脚本导入了数据库里。

 

 

附录:MySql 各级字符集的查询方法

  • 服务器级

    SHOW CHARACTER SET;可查出可供使用的所有字符集。
    SHOW VARIABLES LIKE 'character_set';可查出服务器的默认字符集。
  • status在默认是可以看系统级的字符设置。
    在转到特定数据库下使用,可以查看此数据库的字符设置。

  • 可查出数据库级的字符集。

    SHOW CREATE DATABASE db_name;
  • 两条命令可查出数据表的字符集。

    SHOW CREATE TABLE table_name;
    SHOW TABLE STATUS LIKE 'table_name';
  • 以下几命令可查出数据列的字符集:

    DESCRIBE table_name;
    SHOW COLUMNS FROM table_name;
    SHOW CREATE TABLE table_name;
  • 用CHARSET()函数可确定特定字符串,字符串表达式或数据列值相关联的字符串的字符集。如:SELECT CHARSET(str)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值