zoukankan      html  css  js  c++  java
  • java.sql.SQLException: Data truncation: Incorrect string value: 'xE5x91xA8xE6x9DxBE' for column 'cname' at row 1 Query

    在将项目上传到服务器时,发生这样的错误,总结了一下。

    环境Centos7+tomcat7+Mariadb数据库

    首先mysql -uroot -p 输入密码 

    然后查询数据库当前码表状态

    show variables like '%char%';
    View Code

    结果如下

    可以看出Character_set_database=latinl和Character_set_results=latinl这个两个非utf8格式

    一般来说,如果为了防止数据库乱码,或者无法插入,适合采用全utf8格式 但是有可能存在存储空间损耗的问题

    那么修改这两个非utf8的参数

    修改mariadb数据库的参数

    1.打开server.cnf文件

    vi /etc/my.cnf.d/server.cnf

    2.在server.cnf文件的【mysqld】标签中添加如下内容

    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    View Code

    3.打开 mysql-clients.cnf文件

    vim /etc/my.cnf.d/ mysql-clients.cnf

    4.在[mysql]标签下添加

    default-character-set=utf8
    View Code

    最后看数据库连接配置

     重启mariadb数据库

    systemctl restart mariadb

    查看数据库连接情况

    如果这样依旧不能解决乱码问题 那么就设置,那么就可能是连接的问题

    查看连接的字符码格式

    show variables like "collation_%";
    View Code

    设置为UTF8

    SET NAMES 'utf8';
    View Code

    然后如果是数据库设置编码的问题或者表设置编码的问题

    这里可以看到有一个test数据库

    设置test数据库的编码格式

     ALTER database test character set utf8;
    View Code

    然后可以看到一个test表,设置表的编码格式

    ALTER table test character set utf8;
    View Code

    最后查看表的编码格式

    可以看到尽管外部是utf8设置的表的字符码,但是内部行的数据仍然为latin1的格式

    所以这个时候修改行的字符为

    alter table test change `cname` `cname` varchar(20) character set utf8;
    View Code

    最后插入一条中文数据尝试

    数据库能够正常使用,而且在服务器上做测试和window上的实验结果相同

    最后总结数据库存储过程中如果出现乱码或其他异常问题问题

    1.数据库设置不正确产生的乱码或者错误

    2.存储过程中的乱码 数据库或者表或者行的字符码不正确

    3.操作数据库的url不正确或者sql语句存在问题等

  • 相关阅读:
    javascript:history.go()和History.back()的区别
    Web 开发] 定制IE下载对话框的按钮(打开/保存)(转)
    JavaScript 浮动定位提示效果(转)
    关于网页*静态化*及SEO问题的一些补充(转)
    httpanalyzer 结合 HttpWebRequest Post的运用
    SEO工具大全(转)
    导出excel
    Asp.NET导出Excel文件乱码解决若干方法 (转)
    关于DataBinder.Eval Eval Bind
    电脑疑似中毒
  • 原文地址:https://www.cnblogs.com/ad-zhou/p/9129116.html
Copyright © 2011-2022 走看看