使用MySQL常常会出现乱码问题,一般情况下都是因为编码不一致造成,以下提供了MySQL数据编码相关的一些信息,希望会有所帮助。

一、MySQL的编码机制:

1、数据库级别的编码:数据库服务器上允许建立不同编码的数据库,在数据库建立时需要指定编码;

2、表级别的编码:同一个数据库中可以建立不同编码的表,在表建立时需要指定编码,默认为用户连接时的编码;

3、表字段级别的编码:同一个表中可以建立不同编码的字段,默认为表的编码,要对字段指定特殊的编码,必须在字段中明确指定编码格式;

4、建立数据库连接时的编码:用户可以在建立数据库连接时指定编码,默认为服务器的配置。

二、出现乱码的一般原因:

1、建立数据库连接时使用的编码不对:例如:数据库编码为UTF-8,连接数据时没有指定编码格式常常会造成乱码问题,正常的解决应该是在driverURL中指定编码 jdbc:mysql://localhost:3306/zhuojh?useUnicode=true&characterEncoding=UTF-8

2、表的编码和driverURL中指定编码不一致造成的乱码问题例如:表的编码是latin1,driverURL中指定编码却是UTF-8,在保存时就会提示保存了错误的数据,解决方式就是使用相同的编码

3、表的编码和表中字段编码不一致造成的乱码问题例如:表的编码是UTF-8,表中的字段却是latin,这种情况编码问题处理起来比较复杂,建议统一编码格式,有兴趣者可以深入研究

三、案例

1、Spring、Hibernate、Struts和Proxool,采用MySQL数据库乱码问题解决:如果表和字段的编码一致都是UTF-8,在Proxool配置中指定下配置项,即可解决乱码问题 jdbc:mysql://localhost:3306/zhuojh?useUnicode=true&characterEncoding=UTF-8

2、Spring、Struts和iBatis,采用MySQL数据库乱码问题解决:如果表和字段的编码一致都是UTF-8,在属性文件配置中指定下配置项,即可解决乱码问题 jdbc:mysql://localhost:3306/bcq?useUnicode\=true&characterEncoding\=UTF-8

3、Linux下使用MySQL自带的备份工具转换不同编码格式的表数据如果源表的编码格式为latin1,目标表的编码格式为UTF-8,在Linux环境下可以使用以下命令进行转换 mysqldump -C -h ${source_host} -u${source_username} -p${source_password} --default-character-set=latin1 source_database source_tablename|sed -e 's/latin1/utf8/'|mysql -u${local_username} -p${local_password} local_tablename

mysql编码不对_MySQL编码不一致导致乱码问题总结相关推荐

  1. mysql 字符集 性能_MySQL字符集不一致导致性能下降25%,你敢信?

    故事是这样的: 我在对MySQL进行性能测试时,发现CPU使用率接近100%,其中80%us, 16%sys,3%wa,iostat发现磁盘iops2000以下,avgqu-sz不超过3,%util最 ...

  2. Mysql编码教程_mysql编码设置教程 mysql编码要怎么设置呢

    mysql的默认编码是拉丁,每次JSP制作网页用insert语句插入数据库时汉字都会显示成问号,安装mysql后,启动服务并登陆,使用show variables命令可查看mysql数据库的默认编码: ...

  3. mysql 编码种类_MySQL 编码

    编码的种类 SHOW VBRIABLES LIKE '%character%'; 1) character_set_client : MySQL Server 假定client传输数据过来的时候的编码 ...

  4. mysql utf8mb4 字节_mysql编码使用utf8mb4

    MySQL在 5.5.3 之后增加了 utf8mb4 字符编码,mb4即 most bytes 4.简单说 utf8mb4 是 utf8 的超集并完全兼容utf8,能够用四个字节存储更多的字符.(查看 ...

  5. mysql 表死锁_MySQL Innodb表导致死锁日志情况分析与归纳

    案例描述在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下:(1)insert into backup ...

  6. mysql ddl 锁_MySQL Online DDL导致全局锁表案例分析

    MySQL Online DDL导致全局锁表案例分析 我这边遇到了什么问题? 线上给某个表执行新增索引SQL, 然后整个数据CPU打到100%, 连接数暴增到极限, 最后导致所有访问数据库的应用都奔溃 ...

  7. mysql 中文注释_mysql注释是中文乱码怎么办

    mysql注释是中文乱码的解决办法:首先用"show variables like"命令查看数据库与服务端的字符集设置:然后执行语句为"set collation_ser ...

  8. mysql commit慢_mysql autocommit问题导致的gtid同步变慢

    这几天在研究mysql数据同步,查看一些资料发现5.7版本可以使用gtid来实现主备数据库的数据同步. 经过一些折腾,搭建完毕,在master上建库.建表.插入数据,在从库上都能看到.看来一切正常. ...

  9. mysql 回退查询_MYSQL数据库表排序规则不一致导致联表查询,索引不起作用问题...

    Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...

最新文章

  1. HashFlare矿池退出BTC挖矿,Coingeek矿池继续增加BCH算力
  2. iOS保存model数据(自定义Model 可以存放到本地)
  3. 中国丝绸市场投资规划及未来发展前景展望报告2022-2028年
  4. Linux中相关知识(atexit(),fork(),粘滞位)
  5. react重新渲染菜单_React实现递归组件
  6. RabbitMQ 镜像集群配置_05
  7. ASP.NET MVC 阻止通过URL访问服务器上的静态资源文件
  8. Vs code 02 配置非标准的C、C++的编译环境
  9. 数据结构之顺序表和有序表查找其实现
  10. 硬盘安装Linux救援系统,通过急救系统里往硬盘里安装 alpine linux
  11. L3-006 迎风一刀斩 (30 分)-PAT 团体程序设计天梯赛 GPLT
  12. mysql集群集成springboot_springboot配置数据库包括集群下 配置
  13. ubuntu 用户管理 adduser vs useradd
  14. 众包专访:告别接包黑历史,来到开源中国众包接包小记
  15. Java打印菱形(一)
  16. 基于深度学习实现手写汉字识别
  17. 8、两种典型微处理器介绍
  18. C#字节数组与字符串相互转换代码案例
  19. 用了这么多年PPT才知道,按下这个键,200页Word秒转PPT
  20. 详细阅读Spark论文

热门文章

  1. TVM适配NN编译Compiler缺陷
  2. 什么是GStreamer?
  3. 解读模拟摇杆原理及实验
  4. CVPR2020:点云三维目标跟踪的点对盒网络(P2B)
  5. Python:CrawlSpiders
  6. js ajax 递归,javascript ajax循环请求/ 长轮询终极解决办法——递归
  7. Android Shape 的使用
  8. Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib
  9. github 删除工程的操作
  10. 小程序加载大图片 使用widthFix时,图片先拉伸然后才显示完全