首页 新闻 会员 周边 捐助

mysql 无法修改编码

0
悬赏园豆:20 [已解决问题] 解决于 2014-03-10 15:53
我的mysql位于云计算平台,每次将
haracter_set_client;
character_set_connection;
character_set_database;
character_set_results;
character_set_server;
改为UTF8之后,重新进入mysql,它又自动改回latin1
而且我每次进入mysql是不需要密码的,直接输入mysql就可以进入
Catcher_8的主页 Catcher_8 | 初学一级 | 园豆:151
提问于:2013-02-09 11:48
< >
分享
最佳答案
0

从my.ini下手

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

default-character-set=utf8

 

以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。

然后重启mysql,执行

mysql> SHOW VARIABLES LIKE 'character%';

mysql> SHOW VARIABLES LIKE 'collation_%';

确保所有的Value项都是utf8即可。

收获园豆:20
@ndy | 初学一级 |园豆:157 | 2013-02-14 08:23

如果我没有权限修改my.ini呢?

还有其他的办法吗?

Catcher_8 | 园豆:151 (初学一级) | 2013-02-14 08:55

@kcher: 

有个方法很简单,在连接url后加上如下代码即可:

?useUnicode=true&amp;characterEncoding=UTF-8

特别注意,两个属性之间一定要用&符号的转义符,且不能带空格,否则会报错。
 例子如下 hibernate.cfg.xml配置文件:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 
    <!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>
 
    <session-factory>
        <property name="dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <property name="connection.url">
        </property>
        <property name="connection.username">root</property>
        <property name="connection.password">accp</property>
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <property name="myeclipse.connection.profile">ssh</property>
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <mapping resource="cn/lihuoqing/po/ShUser.hbm.xml" />
        <mapping resource="cn/lihuoqing/po/ShOptions.hbm.xml" />
        <mapping resource="cn/lihuoqing/po/ShFiles.hbm.xml" />
        <mapping resource="cn/lihuoqing/po/ShComments.hbm.xml" />
        <mapping resource="cn/lihuoqing/po/ShDown.hbm.xml" />
    </session-factory>
</hibernate-configuration>
=================================
   1 修改数据库级 
          a. 临时更改: 
              mysql>SET GLOBAL character_set_database=utf8; 
         b. 永久更改: 
              改了服务器级就可以了 
     2.修改表级 
          mysql>ALTER TABLE table_name DEFAULT CHARSET utf8; 
         更改了后永久生效 
     3.修改列级 
           修改示例: 
          mysql>alter 
table `products` change `products_model` `products_model` varchar( 20 ) 
         character set  utf8 collate utf8_general_ci null default null; 
         更改了后永久生效 
      4.更改连接字符集 
           a. 临时更改: 
               mysql> set names utf8; 
          b. 永久更改: 
               修改my.ini文件 
             在[client]中增加: 
               default-character-set=utf8 

@ndy | 园豆:157 (初学一级) | 2013-02-14 09:23
其他回答(2)
0

数据库属性中可以单独设置

chenping2008 | 园豆:9836 (大侠五级) | 2013-02-11 11:00

能否回答详细点,

character_set_client;
character_set_connection;
character_set_results;
这些属性能在数据库中单独设置?
支持(0) 反对(0) Catcher_8 | 园豆:151 (初学一级) | 2013-02-12 13:43
0

多打一条命令

set names utf8;

过去的我 | 园豆:206 (菜鸟二级) | 2013-02-12 13:40

MySQL文档中说:

set names 与

character_set_client;
character_set_connection;
character_set_results;
这三个属性的单独设置效果一样的
支持(0) 反对(0) Catcher_8 | 园豆:151 (初学一级) | 2013-02-12 13:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册