前言

乱码问题是很让人抓狂的问题,下面我将记录一下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

MySQL数据库乱码 - Linux下乱码问题解决相关推荐

  1. mysql数据库在linux下的导出和导入及每天的备份

    mysql数据库的导出,导入 1. 导出数据库为sql文件 mysqldump 数据库名 -uroot -p > xxx.sql 导出数据表结构和数据 eg.   mysqldump cloud ...

  2. linux版本kettle 中文乱码,kettle工具同步数据乱码-Linux下乱码问题二

    json校验 直接百度:json在线解析  或  json.cnhttp://json.cn/ json格式校验的.这个更加简洁些. SQL语句构建器类 问题 Java程序员面对的最痛苦的事情之一就是 ...

  3. windows tomcat无乱码 linux下乱码,解决linux服务器tomcat乱码问题

    1 保证linux服务器使用的是utf-8 local -a查看支持的字体 vi/etc/sysconfig/i18n 修改为zh_CN.UTF-8 2.客户端软件Xshell.putty.SSH S ...

  4. 解决openfire在使用MySQL数据库后的中文乱码问题(转)

    openfire是一个非常不错的IM服务器,而且是纯Java实现,具有多个平台的版本,他的数据存储可以采用多种数据库,如MySQL,Oracle等. 在实际使用时大家遇到最多的就是采用MySQL数据库 ...

  5. mysql 恢复数据库乱码了_再谈MySQL数据库备份恢复和乱码问题

    在我转到wordpress之后第一个考虑的是它的数据库备份恢复问题,因为写bloger都知道,自己的blog记录的都是自己需要的宝贵的资料和文字,如果因为各种未知因素导致数据库崩溃或者空间商出了问题, ...

  6. mysql 数据库备份 乱码_再谈 MySQL 数据库备份恢复和乱码问题

    在我转到wordpress之后第一个考虑的是它的数据库备份恢复问题,因为写bloger都知道,自己的blog记录的都是自己需要的宝贵的资料和文字,如果因为各种未知因素导致数据库崩溃或者空间商出了问题, ...

  7. linux安装oracle 11g乱码,Linux下安装Oracle11g中文乱码,DISPLAY未通过

    Linux下安装Oracle11g中文乱码 Linux下安装Oracle11g,安装界面乱码问题解决方法: 解决 1.下载中文字体 2.进入刚解压的database/stage/Components/ ...

  8. 卸载linux下的mysql数据库实例_Linux下卸载MySQL数据库实例教程

    本文主要介绍了Linux下卸载MySQL数据库的方法,不知道Linux下卸载MySQL数据库的小伙伴们可以学习一下,本文具有一定的参考价值,希望能帮助到大家. 如何在Linux下卸载MySQL数据库呢 ...

  9. 关于MAC下pymysql连接mysql数据库报错2003的问题解决方法

    关于MAC下pymysql连接mysql数据库报错2003的问题解决方法 问题:pymysql.err.OperationalError: (2003, "Can't connect to ...

最新文章

  1. pythonurllib微博登录怎么删_Python骚操作之删微博还需用手动吗?Python去做就好了!...
  2. 计算机英语阅读理解,2017年12月英语四级阅读理解50篇:学习计算机
  3. 自定义LinkedList
  4. NFS服务端安装与配置
  5. [工具类]文件或文件夹xx已存在,则重命名为xx(n)(2)
  6. 在vivo面试 java_面试代码题(vivo)数位之积
  7. 对DataGridView中的DataGridViewComboBoxColumn有了一点点体会
  8. 细胞亚器互作之细胞代谢调节液泡与线粒体的接触位Cellular Metabolism Regulates Contact Sites between Vacuoles and Mitochondria
  9. button执行onclick函数_JavaScript 函数定义与调用
  10. 强化学习——表格法 Tabular Methods
  11. 边城工具集:绘图及标注工具
  12. 使用Route报错:A <Route> is only ever to be used as the child of <Routes> element, never rendered directl
  13. python进行谱曲_使用LSTM-GAN为歌词谱曲
  14. Curator使用手册
  15. 快对作业超级计算机,快对作业2020
  16. maven私有仓库的搭建——nexus的安装
  17. 中国漂粉精市场深度调查及战略研究报告(2022版)
  18. 如何在自己的APP,网页中搭建一个卡点视频制作功能
  19. 【ROS-Navigation】—— Astar路径规划算法解析
  20. 优化函数和损失函数的区别与联系

热门文章

  1. mysql error.log 权限_docker-compose 启动mysql 容器时 error.log 无权限访问怎么办?
  2. C++ Primer 5th笔记(chap 19 特殊工具与技术)控制内存分配
  3. 深度学习的数学 (3)基础函数
  4. 《研磨设计模式》chap22 装饰模式Decorator(1)模式简介
  5. C++ Primer 5th笔记(chap 12 动态内存)weak_ptr
  6. 2020 安恒七月赛
  7. Beyond Compare4长期使用方法
  8. C++日志系统log4cxx使用总结
  9. 【漏洞实战】某网站JS文件泄露导致拿到服务器权限
  10. PE学习(一)masm32开发环境和ollyICE使用