Mysql 乱码的解决

Mysql 乱码的解决 

首先在命令行下进入mysql编辑模式输入

mysql>

show variables like 'char%';  查看数据库字符集设置 
Mysql 乱码的解决_第1张图片

client、connection、result 和命令行客户端相关  (windows 下命令行客户端必须要设置gbk )


database server system 和服务器相关字符集  (system字符集不可修改 )

* 实际开发中 建议大家 将database 和 server 字符集 设置为utf8 

修改完database server system 和服务器相关字符集后需要重新启动mysql才能生效

在服务里重启就可以,还可以,在命令行 :停止命令:net stop mysql

启动命令:net start mysql



mysql核心配置文件 my.ini 如果linux my.cnf 
[mysql] 主要配置命令行客户端参数 default-character-set=gbk  ---- 影响 client、connection、result 
[mysqld] 配置服务器参数 character-set-server=utf8  ----- 影响 database server 
备注:如是win7系统的话,因为权限问题不让修改,你可以把文件拷贝出来,修改完在放回去,(主要是是mysql安装在C盘会出现这样的问题) Mysql 乱码的解决_第2张图片

如果服务器server 字符集 已经设置utf8 建立数据库 数据表 默认utf8 ----- 插入数据一定没有乱码
如果服务器 没有设置server字符集, 默认latin1 , 建立数据库指定字符集utf-8 建表指定字符集utf-8  (有乱码 )
解决方案一: 设置server 字符集, 重新建立数据库和表 
解决方案二: jdbc:mysql:///db?useUnicode=true&characterEncoding=utf-8  (默认传输字符集 utf8/gbk)

对于linux来说上述方法只能修改character-set-server=utf8  

如果要完全修改乱码还需要下述方法

下述内容非原创,如有雷同纯属学习

linux下面设置mysql中文编码问题

最近用一台LINUX机器做数据库服务器,上面装了MYSQL数据库,项目的数据库就全都放这台机器,但是默认的MYSQL编码都是latin1的,如果存中文就会有问题,解决方案如下:
#vi /etc/my.cnf
在里面相应的地方加上如下编码设置
[mysqld]
default-character-set=gbk
    
[mysql.server]
default-character-set=gbk

[mysqld_safe]

default-character-set=gbk

[client]
default-character-set=gbk

[mysql]
default-character-set=gbk

重启MYSQL即可。
如果不知道MYSQL在哪个地方,运行
#whereis mysql
即可找到MYSQL安装在哪个地方
如果想查设置是不是成功了,可以运行如下命令:
# mysql -u root -proot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.0.22

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

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | gbk                        |
| character_set_connection | gbk                        |
| character_set_database   | gbk                        |
| character_set_filesystem | binary                     |
| character_set_results    | gbk                        |
| character_set_server     | gbk                        |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

上面的就已经显示编码设置成功了。

 

你可能感兴趣的:(Mysql 乱码的解决)