. Mysql中重要的字符集问题,如果没有统一会产生乱码问题。这个是mysqlDB与sql servser不同的地方。mysql服务器中有六个关键位置使用了字符集的概念,他们是:client、connection、database、results、server、system
a、其中client是客户端使用的字符集
b、其中的connection是连接数据库的字符集设置类型
c、database是数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置
d、results是数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集
e、server是服务器安装时指定的默认字符集设定
f、 system是数据库系统使用的字符集设定,默认的就是utf8。
这里我们规定所有的字符集统一设置为utf8
先查看当前系统的字符集可以用命令:SHOW VARIABLES LIKE'character_set_%';
这样你可以看到当前服务器的字符集设置。这里我们可以通过更改mysql的配置文件来设置数据库的默认的字符集,修改my.cnf (linux下)
在[client]段中加入default-character-set=utf8
在[mysqld]段中加入default-character-set=utf8
然后重启mysql ;
让我们再次查看一下mysql此时的字符集:
![](https://img-my.csdn.net/uploads/201209/05/1346832633_1628.jpg)
此时就可以统一字符集了!这个是在一台新的DB中这样设置就可以了! 如果是在已经存在的数据库中存在字符集问题,则需要将数据dump出来,然后再重新导入。这里把脚本备注一下:
备注一:
小结:这里创建数据库时最好指定字符集: <CO
de>CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_cide><CO de>。 这里只是简单的说明一下:注重原理,另外用不同客户端连接数据库的时候最好都指定字符集。这样就不会出现乱码的问题了。de>
2. 数据库中大小写的问题:现在很多mysql db都是跑在linux服务器下面的,Linux是严格区分大小写的。而大多数开发环境中大家用的都是windows ,windows因为面向的主题对象是操作用户,对大小写不敏感,也不区分大小写。这样就会出现在开发环境上运行的程序到测试环境中无法通过的尴尬境地。(本人被这个问题折腾了很久)这里我们可以通过修改mysql的配置文件来达到在windows下面也区分大小写,来解决这个问题,设置的方法很简单,在[mysqld] 设置lower_case_table_names = 0