linux mysql中文乱码问题解决方式
2016-07-09 12:32
645 查看
常常在使用Navicat或者JDBC插入数据到mysql时,会遇见中文乱码问题,这时怎么解决问题呢?
请看下面的总结:
1、建表时没有指定统一的编码格式导致
错误的建表方式:
CREATE TABLE database_user(
ID varchar(40) ,
UserID varchar(40)
)
正确的建表方式:
CREATE TABLE database_user(
ID varchar(40) ,
UserID varchar(40)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、安装数据库时没有修改my.cnf文件
进入数据库后查看编码格式:
#mysql -u root -p123456
(1)mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-------------------+
(2)mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
如果编码格式正确统一,那么需要修改my.cnf文件
在【mysqld】下面添加:default-character-set=utf8
执行以上操作后再插入数据即可不乱码!
但是有可能还会出错,原因是建数据库的时候没有指定编码格式,如
GBK编码的库: create database test22 DEFAULT CHARACTER
SET gbk COLLATE gbk_chinese_ci;
UTF8编码的库: CREATE DATABASE tst33 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
所以需要删除库后,重新指定编码,然后建库,即可解决!
请看下面的总结:
1、建表时没有指定统一的编码格式导致
错误的建表方式:
CREATE TABLE database_user(
ID varchar(40) ,
UserID varchar(40)
)
正确的建表方式:
CREATE TABLE database_user(
ID varchar(40) ,
UserID varchar(40)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、安装数据库时没有修改my.cnf文件
进入数据库后查看编码格式:
#mysql -u root -p123456
(1)mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-------------------+
(2)mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
如果编码格式正确统一,那么需要修改my.cnf文件
在【mysqld】下面添加:default-character-set=utf8
执行以上操作后再插入数据即可不乱码!
但是有可能还会出错,原因是建数据库的时候没有指定编码格式,如
GBK编码的库: create database test22 DEFAULT CHARACTER
SET gbk COLLATE gbk_chinese_ci;
UTF8编码的库: CREATE DATABASE tst33 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
所以需要删除库后,重新指定编码,然后建库,即可解决!
相关文章推荐
- Linux基础篇——信号
- 详解神秘Linux内核
- Linux ffmpeg命令的介绍与使用
- Linux下ffmpeg的各种编解码器的安装
- [CentOs7]安装mysql
- Linux文件搜索命令
- CentOS 7运维管理笔记(12)----GUI配置工具Webmin的安装
- Linux命令(003) -- crontab
- Linux的目录文件是只读的,怎么修改文件
- Linux系统优化
- linux 打包分割合并,解压文件
- Linux开发工具之编译器gcc
- linux yum命令详解
- 关于linux的目录/etc
- Linux下gdb调试程序及举例
- Linux U盘启动盘制作出现的问题
- 工程管理器makefile的解释及简单模型
- PCIe之DMA (二)
- Linux ssh安全配置
- linux ln -s 软链接