Mysql5 字符集编码问题解决

 更新时间:2009年10月07日 00:42:30   作者:  
mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。
我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来
很多mysql数据库工具(除了phpmyadmin,我偶尔用,功能强速度慢)都不支持创建时指定数据库编码,当然可以改my.ini来解决这个问题,但是需要重新启动mysql,不过用下面的语句会更有效
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
注意:如果不是通过my.ini配置文件设置的内容,只在当前状态下有效,当重启数据库服务后失效。所以如果想要不出现乱码只有修改my.ini文件,数据库编码可以在创建数据库时候指定UTF8,如下:
|character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8
注意该配置| character_set_server | latin1 无法设置成UTF8
交互时候仍然会出现乱码。
只有当修改my.ini中设置UTF8,才会全部修改成UTF8
-------------------------
mysql设置编码命令
SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;/*这里要注意很有用*/
SET character_set_server = utf8;
SET collation_connection = utf8_bin;
SET collation_database = utf8_bin;
SET collation_server = utf8_bin;
my.ini中配置默认编码
default-character-set=utf8
连接数据库设置编码
jdbc:mysql://192.168.0.5:3306/test?characterEncoding=utf8
/*****************************************java与mysq编码对应****************************************/
java中的常用编码UTF-8;GBK;GB2312;ISO-8859-1;
对应mysql数据库中的编码utf8;gbk;gb2312;latin1

---------------------------
数据库连接串中指定字符集URL=jdbc:mysql://yourIP/college?user=root&password=yourPassword&useUnicode=true&characterEncoding=gbk

不要试图通过sql命令来修改character_set_server,那是临时的,还是老老实实修改my.ini或者linux下的my.cnf
复制代码 代码如下:

[mysqld]
......
character_set_server=utf8
default-character-set=utf8

相关文章

  • 详解在Windows环境下访问linux虚拟机中MySQL数据库

    详解在Windows环境下访问linux虚拟机中MySQL数据库

    这篇文章主要介绍了如何Windows环境下访问linux虚拟机中MySQL数据库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • MySQL排序优化详细解析

    MySQL排序优化详细解析

    这篇文章主要介绍了MySQL排序优化详细解析,MySQL有两种方式生成有序的结果:1.通过排序操作;2.按索引顺序扫描,如果EXPLAIN出来的type列的值为"index",则说明使用了索引扫描来做排序,需要的朋友可以参考下
    2024-01-01
  • 详解MySQL中UNION的用法

    详解MySQL中UNION的用法

    这篇文章主要介绍了详解MySQL中UNION的用法,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Mysql中@和@@符号的详细使用指南

    Mysql中@和@@符号的详细使用指南

    最近工作遇到了一个问题,给自己做个记录,下面这篇文章主要给大家介绍了关于Mysql中@和@@符号的详细使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • 关于SQL嵌套的误解分析

    关于SQL嵌套的误解分析

    之前我曾一直以为:就是在sql语句嵌套时,嵌套查询的约束和外层的约束是没有关系的。
    2010-12-12
  • 一文弄懂MySQL中redo log与binlog的区别

    一文弄懂MySQL中redo log与binlog的区别

    在学习mysql数据库时,不可避免要去接触到redo log和binlog,好多人对这两者的概念分不太清,下面这篇文章主要给大家介绍了关于MySQL中redo log与binlog区别的相关资料,需要的朋友可以参考下
    2022-02-02
  • MYSQL之on和where的区别解读

    MYSQL之on和where的区别解读

    这篇文章主要介绍了MYSQL之on和where的区别解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • MySQL事务管理的作用详解

    MySQL事务管理的作用详解

    事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。MySQL提供一种机制,保证我们达到这样的效果。事务还规定不同的客户端看到的数据是不相同的
    2022-08-08
  • MySQL单表恢复的步骤

    MySQL单表恢复的步骤

    这篇文章主要介绍了MySQL单表恢复的步骤,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • mysql报错RSA private key file not found的解决方法

    mysql报错RSA private key file not found的解决方法

    当MySQL报错RSA private key file not found时,可能是由于MySQL的RSA私钥文件丢失或者损坏导致的,此时可以重新生成RSA私钥文件,以解决这个问题
    2023-06-06

最新评论