sql mysql utf8mb4设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql mysql utf8mb4设置相关的知识,希望对你有一定的参考价值。
# Python3 PyMySQL Raise Incorrect String Value When Inserting UTF-8 Data
## Description
Python3 + PyMySQL 的环境, 如果在数据库中写入中文, 会出现报错:
``` bash
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xE6\\xB5\\x8B\\xE8\\xAF\\x95' for column 'description' at row 1")
```
查询发现主要原因是 mysql 对 utf8 的支持是最大 3 个 bytes, 而写入是以 4 byptes 为准的.
所以需要在创建的时候指定 charset 为 `utf8mb4`, 创建方法[见 snippet](#file-command-sql)
## Reference:
- [Solution of Error in Insertion](https://stackoverflow.com/questions/47419943/pymysql-warning-1366-incorrect-string-value-xf0-x9f-x98-x8d-t)
- [Change Database with utf8mb4](https://gist.github.com/dschneider/dc914b37c66dbf76a16b)
- [修改MySQL的字符集为utf8mb4](https://docs.lvrui.io/2016/08/21/%E4%BF%AE%E6%94%B9MySQL%E7%9A%84%E5%AD%97%E7%AC%A6%E9%9B%86%E4%B8%BAutf8mb4/)
- [mysql:sql create database新建utf8mb4 数据库](https://blog.csdn.net/ShellDawn/article/details/71170543)
CREATE DATABASE utf_test
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
以上是关于sql mysql utf8mb4设置的主要内容,如果未能解决你的问题,请参考以下文章
设置 MYSQL 数据库编码为 utf8mb4
关于解决运行sql文件时,找不到MySQL默认编码utf8mb4的问题
从 Java 到 MySQL 的 Twitter 文本:utf8mb4 SQL 错误“reportcharsetnr(”
sql 如何在MySQL 5.5中将utf8mb4表转换为utf8
mysql 设置 utf8mb4 怎么查询
mysql:设置字符集utf8mb4 支持emoji字符