MySQL数据库乱码
来源:互联网 发布:简单有趣的c语言程序 编辑:程序博客网 时间:2024/06/18 09:25
前言
乱码问题是很让人抓狂的问题,下面我将记录一下Linux下MySQL乱码问题的解决方法。
mysql在linux下乱码问题
一、操作
mysql默认字符集是latin1,但是我们大部分程序使用的字符集是utf8,我们就需要修改mysql的字符集了。
1)查看默认编码
show variables like 'character%';+--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ Mysql下默认的编码是latin1
2)查看默认排序方式
show variables like 'collation_%';+----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | latin1_swedish_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | +----------------------+-----------------+
3)修改默认字符集
修改文件/etc/my.cnf内容
在[client]下添加如下语句
default-character-set=utf8
在[mysqld]下添加
default-character-set=utf8init_connect='SET NAMES utf8' ##设定连接mysql是使用UTF8编码
修改好后,重启mysql服务即可
4)另外一种修改字符编码方法
登录mysql后,输入如下内容
mysql> SET character_set_client = utf8 ; mysql> SET character_set_connection = utf8 ; mysql> SET character_set_database = utf8 ; mysql> SET character_set_results = utf8 ; mysql> SET character_set_server = utf8 ; mysql> SET collation_connection = utf8 ; mysql> SET collation_database = utf8 ; mysql> SET collation_server = utf8 ;
5)重新查看
show variables like 'character%';+--------------------------+---------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir |/usr/share/mysql/charsets/| +--------------------------+---------------------------------+show variables like 'collation_%';+----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | +----------------------+-----------------+
6)使用JDBC连接mysql时需要将连接字符串改为如下方式:
jdbc:mysql://localhost/mysql?useUnicode=true&characterEncoding=UTF-8
已utf8的方式连接
二、概念
character-set-server/default-character-set:服务器字符集,默认情况下所采用的。character-set-database:数据库字符集。character-set-table:数据库表字符集。character-set-client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进行编码。character-set-results:结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进行编码。统一设置字符集编码使用语句:set names utf8
三、导入导出防止乱码
1、导出数据库使用命令(在cmd下输入)
mysqldump -u用户名 -p密码 -h服务器地址 数据库名称 --default-character-set=utf8 --hex-blob >导出数据库.sql--default-character-set=utf8 代表使用urf8编码导出数据--hex-blob 代表以16进制导出数据库
2、导入数据库使用命令(在cmd下输入)
mysql -u用户名 -p密码 -h服务器地址 数据库名称 –default-character-set=utf8 –hex-blob <导出数据库.sql
除了使用上面的命令导入数据库外,还可以登录mysql,使用source命令导入
mysql> source 导出数据库.sql
注:blob字段存放的是二进制数据,故其没有字符集编码,在window和linux使用以上方式还是会有乱码的问题,故建议将blob类型修改为text类型,才不会出现乱码。blob类型数据往text类型转换,自己写一个简单的代码,从blob读出数据以字符串的形式存到text字段即可。
转自:http://blog.csdn.net/fengshuiyue/article/details/10046317
阅读全文
0 0
- mysql数据库乱码问题
- 数据库乱码Mysql
- 解决mysql数据库乱码
- mysql 数据库乱码
- mysql 数据库乱码问题
- mysql数据库乱码解决方法
- 解决mysql数据库乱码
- mysql数据库中文乱码
- MySQL数据库乱码问题
- Mysql数据库乱码解决方法
- mysql数据库乱码解析
- Mysql数据库乱码总结
- MySQL 数据库中文乱码
- MYSQL 数据库乱码
- MySQL数据库表乱码
- mysql数据库乱码问题
- mysql数据库乱码解决
- MySql数据库乱码问题
- Unity3D 制作场景工具(物体)提示UI(UGUI)插件包
- 定义一个函数,判断三个数字的大小,返回最大的数字
- CSS3实现简单特效实例(2)
- React的学习之路
- Android开发者网站目录索引
- MySQL数据库乱码
- 工具(八):文件常用操作工具类
- webstorm入门1-主题和配色
- arm linux 临时页表的建立
- 经典数据结构-红黑树详解(转)
- web基础开发(五)
- Retrofit用法详解
- oracle安装问题解决
- dialog , not attached to window manager