关于Mysql插入中文字符报错ERROR 1366(HY000)的解决方法

 更新时间:2023年07月07日 10:54:57   作者:珞沫  
这篇文章主要介绍了关于Mysql插入中文字符报错ERROR 1366(HY000)的解决方法,在我们日常使用mysql的过程中会经常遇到各种报错,今天我们就来看一下ERROR 1366报错的解决方法吧

问题

  • 加载含有中文字符的数据到表中出错
mysql> CREATE TABLE food(
    ->   id INT(10) PRIMARY KEY AUTO_INCREMENT NOT NULL,
    ->   NAME VARCHAR(20) NOT NULL,
    ->   company VARCHAR(30) NOT NULL,
    ->   price FLOAT,
    ->   produce_time YEAR,
    ->   validity_time INT(4),
    ->   address VARCHAR(50)
    -> );
Query OK, 0 rows affected (0.07 sec)
mysql>  INSERT INTO food(id,NAME,company,price,produce_time,validity_time,address) VALUES(4,'FF咖啡','FF咖啡厂',20,2002,5,'天津');
ERROR 1366 (HY000): Incorrect string value: '\xE5\x92\x96\xE5\x95\xA1' for column 'NAME' at row 1

原因

  • mysql默认编码latin1是不支持中文字符的,所以报错。

在这里插入图片描述

在这里插入图片描述

解决

  • 通过设置编码字符为utf8,从而支持中文字符。

1、查看当前库默认编码格式

mysql> show variables like '%char%';
+--------------------------------------+----------------------------+
| Variable_name                        | Value                      |
+--------------------------------------+----------------------------+
| character_set_client                 | utf8                       |
| character_set_connection             | utf8                       |
| character_set_database               | latin1                     |
| character_set_filesystem             | binary                     |
| character_set_results                | utf8                       |
| character_set_server                 | latin1                     |
| character_set_system                 | utf8                       |
| character_sets_dir                   | /usr/share/mysql/charsets/ |
| validate_password_special_char_count | 1                          |
+--------------------------------------+----------------------------+
9 rows in set (0.00 sec)

2、将character_set_database和character_set_server设置为utf8

mysql> set character_set_database=utf8;
Query OK, 0 rows affected, 1 warning (0.02 sec)
mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)

3、删除数据库并新建数据库,并切到该数据库下

  • 因为只有在编码格式改变以后,再建库才会生效。
drop database student;
create database student;
use student;

在这里插入图片描述

验证

建表、添加数据

mysql> create table Student(
    -> Sno int not null auto_increment primary key,
    -> Sname varchar(10) not null,
    -> Sex char(1) not null,
    -> Sage tinyint(100) not null,
    -> Sdept char(4) not null)comment = '学生表';
Query OK, 0 rows affected (0.03 sec)
mysql> insert into Student values ( 1,'李勇', '男', 20, 'CS');
Query OK, 1 row affected (0.02 sec)

ok,成功解决

总结

如果某表中需要添加中文字符时需要在其库之前将character_set_database和character_set_server设置为utf8

set character_set_database=utf8;
set character_set_server=utf8;

然后再建库,建表插入中文字符数据

到此这篇关于关于Mysql插入中文字符报错ERROR 1366(HY000)的解决方法的文章就介绍到这了,更多相关Mysql中文字符报错ERROR1366内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql中取系统当前时间,当前日期方便查询判定的代码

    mysql中取系统当前时间,当前日期方便查询判定的代码

    今天在写一段查询语句的时候,需要判定结束日期是不是大于当前日期,一般情况下都是通过php判定日期,然后查询。
    2011-12-12
  • mysql中使用sql命令将时间戳解析成datetime类型存入

    mysql中使用sql命令将时间戳解析成datetime类型存入

    这篇文章主要介绍了mysql中使用sql命令将时间戳解析成datetime类型存入,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • MySQL主从复制原理解析与最佳实践过程

    MySQL主从复制原理解析与最佳实践过程

    这篇文章主要介绍了MySQL主从复制原理解析与最佳实践过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • mysql启动提示:错误2系统找不到指定文件的解决方案

    mysql启动提示:错误2系统找不到指定文件的解决方案

    这篇文章主要给大家介绍了mysql启动提示:错误2系统找不到指定文件的解决方案,文中通过图文结合的方式给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • mysql出现ERROR 1819 (HY000)的解决方法

    mysql出现ERROR 1819 (HY000)的解决方法

    这篇文章主要为大家详细介绍了mysql出现ERROR 1819 (HY000)的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • MySQL5.6免安装版环境配置图文教程

    MySQL5.6免安装版环境配置图文教程

    这篇文章主要为大家详细介绍了MySQL免安装版环境配置图文教程,很实用,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • MySQL/MariaDB的Root密码重置教程

    MySQL/MariaDB的Root密码重置教程

    这篇文章主要给大家介绍了关于MySQL/MariaDB的Root密码重置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • MySQL 8.0版本配置my.cnf / my.ini各项配置示例详解

    MySQL 8.0版本配置my.cnf / my.ini各项配置示例详解

    在MySQL 8.0版本之前,MySQL使用的是名为my.ini的配置文件来配置数据库服务器,这篇文章主要介绍了MySQL 8.0版本配置my.cnf / my.ini各项配置的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-11-11
  • MySql存储过程和游标的使用实例

    MySql存储过程和游标的使用实例

    我们在实际的开发中会遇到一些统计的业务功能,如果我实时的去查询的话有时候会很慢,此时我们可以写一个存储过程来实现,下面这篇文章主要给大家介绍了关于MySql存储过程和游标使用的相关资料,需要的朋友可以参考下
    2022-04-04
  • Mysql InnoDB B+树索引目录项记录页管理

    Mysql InnoDB B+树索引目录项记录页管理

    这篇文章主要为大家介绍了Mysql InnoDB B+树索引目录项记录页管理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论