在mysql的命令行模式中,通过insert语句插入中文数据的时候报错,类似于下面这样:

Incorrect string value: '\xE7\x8F' for column 'name' at row 1

造成这个错误通常是由于创建数据表的时候使用了不正确的编码格式,可以使用如下命令查看操作的目标数据表的编码格式。

SHOW CREATE TABLE 表名;

通过结果就可以看到目标表的目标字段对应的编码格式,我们只需要把该列的编码格式转化为utf8即可。

ALTER TABLE 表名 MODIFY 列名 数据类型 CHARACTER SET utf8 非空约束

例如:ALTER TABLE student MODIFY name VARCHAR(20) CHARACTER SET utf8 NOT NULL

当然这只是一个临时的解决办法,更近一步的解决办法是修改数据表的编码,防止以后在使用命令添加数据列的时候,使用的仍是数据表的编码。

ALTER TABLE 表名 DEFAULT CHARSET utf8;

然后这还不是最终的解决办法,我们还可以通过修改数据库的编码方式来影响新创建的数据表的编码方式,进而影响数据列的编码方式。

ALTER DATABASE 数据库名 DEFAULT CHARACTER SET utf8;

但是这需要我们每次在创建数据库的时候都必须指定编码方式,要想一劳永逸,我们可以直接去修改mysql的配置文件,使用如下命令:

vim /etc/mysql/mysql.cnf.d/mysqld.cnf

添加如下配置

[mysqld]
character-set-server=utf8

保存之后重新启动mysql服务即可,命令如下(以Ubuntu16.04为例):

systemctl restart mysql.service

注意在设置编码格式的时候,使用如下命令查看支持的编码格式:

SHOW VARIABLES LIKE 'char%';

mysql数据库使用insert语句插入中文数据报错的更多相关文章

  1. Linux环境下MySQL数据库用SQL语句插入中文显示 “问号或者乱码 ” 问题解决!

    问题: 在普通用户权限下执行 mysql -u root -p进入mysql数据库,中间步骤省略,插入数据:insert into 库名(属性)values('汉字'); 会出现如下提示:  Quer ...

  2. MySQL插入中文数据报错

    在操作数据库插入中文会出现如下错误: ERROR 1366 (HY000): Incorrect string value: '\xC4\xE3\xBA\xC3' for column 'userna ...

  3. mysql插入中文数据报错 java.sql.SQLException: Incorrect string value: '\xE5\x90\x88\xE8\xAE\xA1' for column

    1.我们创建数据库的时候没有更改数据库的字符集为utf8. 在mysql工具中,右击数据库,->"改变数据库",->选择“基字符集”为utf-8; 2,数据库中表的字符 ...

  4. mysql插入中文数据报错:incorrect string value

    我是用的source指令来执行sql脚本文件时发现的这个错误 我的数据库用创建的时候create Database If Not Exists XXXXXX Character Set UTF8; 那 ...

  5. mysql(数据库,sql语句,普通查询)

    第1章 数据库 1.1 数据库概述 l 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作. l 什 ...

  6. MySQL数据库表的数据插入、修改、删除、查询操作及实例应用

    一.MySQL数据库表的数据插入.修改.删除和查询 CREATE DATABASE db0504; USE db0504; CREATE TABLE student ( sno ) NOT NULL ...

  7. Oracle,SQL Server 数据库较MySql数据库,Sql语句差异

    原文:Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 1.关系型数据库 百度百科 关系数据库 ...

  8. mysql 插入表情数据报错

    mysql 插入表情数据报错 1.编码类型改成:utf8mb4 2.连接类型也要改成:utf8mb4_general_ci 3.在每个保存的前面执行一次 self.cursor.execute('SE ...

  9. 连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的,

    连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的, 2018-03-12 17:08:52.532DEBUG[localhost-startStop-1]o.s.beans.factor ...

随机推荐

  1. 数据是ERP系统搭建的基础,但,不要让数据毁了ERP

    很难想象没有数据的ERP是什么样子的.然而,实际情况又是如何的呢? 根据AMT的研究,在那些上线不成功或者上线后掉线的案例中,有高达70%的项目都有一个共同的直接原因,那就是在数据上出了问题.有的是在 ...

  2. 递归方程T(n)=aT(n/b)+f(n)之通用解法

    ,b>1为常数,f(n)为函数,T(n)=aT(n/b)+f(n)为非负数,令x=logba: 1.       f(n)=o(nx-e),e>0,那么T(n)=O(nx). 2.     ...

  3. 微信小程序发布一个月,世界并没有什么不同

    从某种意义上说,在张小龙身上,最可怕的事情莫过于微信小程序发布一个月,一开始的大红大紫居然渐归沉寂,曾经的风光无限已无人谈起,世界并没有什么不同. 这真像一场噩梦,一切都可怕地颠倒了.一款微信的战略级 ...

  4. 润乾报表在proxool应用下的数据源配置

     大多数应用会使用proxool数据连接池,proxool.xml的配置文件如下: <?xml version="1.0″ encoding="UTF-8″?> & ...

  5. linux 目录、文件名、logout、exit、shutdown、reboot、init 0、init 6、runlevel

    /dev 设备目录/boot     系统启动目录/etc 配置文件保存目录/media./mnt./misc  挂载目录,实际可以自己随便定义一个目录作为挂载目录/opt 安装第三方软件位置,但现在 ...

  6. git下配置github sshkey

    教程看这里 http://xiaxveliang.blog.163.com/blog/static/29708034201341244759225/

  7. Java动态代理和反射机制

    反射机制 Java语言提供的一种基础功能,通过反射,我们可以操作这个类或对象,比如获取这个类中的方法.属性和构造方法等. 动态代理:分为JDK动态代理.cglib动态代理(spring中的动态代理). ...

  8. 【Kettle】8、变量参数传递介绍

    本文为转载,感觉作者的辛勤劳作:http://blog.csdn.net/rotkang/article/details/21008271 ------------------------------ ...

  9. amazon interview

    I'll be sitting for an Amazon interview in 3 months. Which website should I use to practice: SPOJ, H ...

  10. Squid安装配置和使用

    文:铁乐与猫 环境 centos 6.5 x64 安装 最简单的一种就是yum安装. yum install squid 版本 rpm -qa | grep squid squid-3.1.23-16 ...