首页 > 数据库 >Mysql设置字符集

Mysql设置字符集

时间:2022-11-16 10:56:42浏览次数:41  
标签:字符 name utf8mb4 字符集 设置 Mysql table 字节

  记录设置数据库字符集。

  1、当向数据库插入表,或者在表中插入数据时,出现

ERROR 1366 (HY000): Incorrect string value: ‘\xBD\xF0\xD3\xB9’ for column ‘name’ at row 1

 原因 数据库编码方式 和 表编码方式 以及 插入数据(字符串)的编码方式不同

 我们可以查看数据库和数据表的编码格式

show create database database_name;
show create table table_name;

  2、修改database的字符集

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

  3、修改表默认的字符集

ALTER TABLE table_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

  4、修改表默认的字符集和所有字符列的字符集

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

  5、单独修改column默认的字符集

ALTER TABLE table_name CHANGE column_name column_name varchar(200) character SET utf8mb4 COLLATE utf8mb4_general_ci;

 

 

注意内容

1、字段长度
由于从utf8升级到了utf8mb4,一个字符所占用的空间也由3个字节增长到4个字节,但是我们当初创建表时,
设置的字段类型以及最大的长度没有改变。例如,你在utf8下设置某一字段的类型为TINYTEXT, 这中字段类型
最大可以容纳255字节,三个字节一个字符的情况下可以容纳85个字符,四个字节一个字符的情况下只能容纳63
个字符,如果原表中的这个字段的值有一个或多个超过了63个字符,那么转换成utf8mb4字符编码时将转换失
败,你必须先将TINYTEXT更改为TEXT等更高容量的类型之后才能继续转换字符编码。


2、索引

在InnoDB引擎中,最大的索引长度为767字节,三个字节一个字符的情况下,索引列的字符长度最大可以达到
255,四个字节一个字符的情况下,索引的字符长度最大只能到191。如果你已经存在的表中的索引列的类型为
VARCHAR(255)那么转换utf8mb4时同样会转换失败。你需要先将VARCHAR(255)更改为VARCHAR(191)才能继续
转换字符编码。

标签:字符,name,utf8mb4,字符集,设置,Mysql,table,字节
From: https://www.cnblogs.com/fugitive/p/16895093.html

相关文章

  • 【Mysql】数据库主从搭建-基于docker
    后台可回复【1024】即可获取相关宝藏内容分享 :) 为什么基于Docker搭建?资源有限虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐一台机器上可以运行多个Docker容器Docker......
  • MySQL性能管理及架构设计(二):数据库结构优化、高可用架构设计、数据库索引优化...
    一、数据库结构优化(​​非常重要​​)1.1数据库结构优化目的1、减少数据冗余:(数据冗余是指在数据库中存在相同的数据,或者某些数据可以由其他数据计算得到),注意,尽量减少不代表......
  • MYSQL详解 及 习题
    常用操作创建表CREATETABLE`xxl_job_group`(`id`int(11)NOTNULLAUTO_INCREMENT,`app_name`varchar(64)NOTNULLCOMMENT'执行器AppName',`title`varchar(1......
  • systemd 系统和服务管理器(1)nacos设置开机自启动
    背景:公司测试windows服务器经常重启,每次服务器重启后都要重新启动nacos,配置个nacos开机自启1.创建nacos.service文件vim/lib/systemd/system/nacos.servicenacos.se......
  • Linux(Centos7)安装MySQL 8.0.28 详细步骤
    一、下载MySQL安装包下载地址:https://downloads.mysql.com/archives/community/ 二、解压并安装1.解压tar-xvfmysql-8.0.28-1.el7.x86_64.rpm-bundle.tar2.......
  • geoserver的wmts切片的样式怎么设置?
    发布一栏里样式是设置到了wms服务上。。wmts的样式如果传默认请求wmts的时候会动态生成切片。。不如提前切好突然想到。。之前设置的样式不见了。。可能是重新发布过......
  • 3 django 配置mysql数据库
    1.MYSQL安装https://blog.csdn.net/qq_59636442/article/details/123058454数据库密码:123456端口号和用户名输入密码,点击check......
  • linux中mysql基础命令
    mysql服务命令1.linux下启动mysql的命令mysqladminstart/ect/init.d/mysqlstart(前面为mysql的安装路径)2.linux下重启mysql的命令:mysqladminrestart/ect/i......
  • MYSQL performance schema详解
    0、performance_schema的介绍​ MySQL的performanceschema用于监控MySQLserver在一个较低级别的运行过程中的资源消耗、资源等待等情况。​ 特点如下:​ 1、提供了......
  • 基于docker容器的MySQL主从设置及efcore读写分离
    1、基于docker部署MySQL,设置主从本操作基于已经拉取的镜像(dockerpullmysql)创建一主一从两个数据库容器dockerrun-d-p3307:3306-eMYSQL_ROOT_PASSWORD=123456--......