mysql字符集浅谈

MySQL8 批量修改字符集脚本浅谈 本文主要介绍了MySQL8 批量修改字符集脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧从低版本迁移到MySQL 8后,可能由于字符集问题出现 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) 错误,此时要修改对象的字符集。 阅读详情

官方文档地址:
http://dev.mysql.com/doc/refman/5.6/en/globalization.html

查看数据库状态

mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.6.13, for Linux (x86_64) using  EditLine wrapper

Connection id:      2
Current database:   
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.6.13-log Source distribution
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /usr/local/mysql/mysql.sock
Uptime:         20 min 53 sec

Threads: 2  Questions: 6  Slow queries: 0  Opens: 70  Flush tables: 1  Open tables: 63  Queries per second avg: 0.004
--------------

查看当前数据库字符集

mysql> show variables like '%character%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.01 sec)

字符集编码:

简单举个不太恰当的例子说明
假设有两个字符A B,然后对A编码为0,B编码为1.那么字符串”AABBB”编码后就是”00111”,就形成了字符集.
通常数据库的字符集编码包括utf8(国际)gbk(中文)latin1(拉丁1版本)

mysql有6个关键位置使用了字符集

Client          前端编码<charset =utf-8> 客户端
Connection  连接编码url  ip..?charset=utf8
Database    数据库编码
Results     返回客户端的编码
Server  install  安装时候指定的编码
System  os操作系统编码

检测字符集的方法

SHOW CHARACTER SET;  #包括哪些编码类型
SHOW COLLATION; 
SHOW VARIABLES LIKE 'character%'; 
SHOW VARIABLES LIKE ‘collation%’; 
HEX、LENGTH、CHAR_LENGTH #SQL函数
CHARSET、COLLATION #SQL函数

乱码总结

  1. 客户端的数据格式与声明的 character_set_client不符 例如: <charset gbk>
  2. character_set_results与客户端页面不符合的时候 <charset=gbk>
    避免乱码问题:
客户端页面  ==  character_set_client  ==  character_set_results  == character_set_connection == character_set_database == character_set_server

修改字符集

  1. set names utf8; 与如下效果相同
    SET character_set_client=’utf8’;
    SET character_set_connection=’utf8’;
    SET character_set_results=’utf8’;

  2. My.cnf 里面:

#保证和数据库编码一致,当mysql客户端链接过来时候,不管是什么字符集,都会按server字符集存储,保证数据库字符集一致
skip-character-set-client-handshake 
#链接默认字符集
init-connect='SET NAMES utf8'
#整个数据库字符集
character-set-server=utf8 

字符集转换过程

字符集转换过程

数据迁移中的字符集

保证两个数据库的字符集是一样的,通过SHOW VARIABLES LIKE 'character%'; 查看
数据丢失 utf8->gbk->latin1 utf8迁移到gbk会丢失,gbk迁移到latin会丢失

数据备份恢复的字符集设定

  1. 物理备份恢复基本ok
  2. 逻辑备份
    Gbk表+utf8表混合在一起,使用binary(二进制)备份恢复
    字符集变更了,使用逻辑备份恢复方式,否则直接ddl可能导致数据丢失。
    跨版本升级的-逻辑备份恢复数据
    数据恢复的时候加mysqldump参数default_charectar_set=utf8/gbk逻辑备份的时候一定要保持一致,
Linux运维必备:高频Shell脚本实战与避坑指南 Shell脚本是Linux运维中实现自动化巡检、备份清理、批量操作的核心手段,其零依赖、管道组合的特性使其成为命令串联场景的首选。通过参数化、日志输出和退出码规范,脚本可被cron或监控系统可靠调用。在磁盘巡检、日志归档、多机批量执行等场景中,合理运用set -euo pipefail、find时间条件、while重定向等技巧,能有效避免变量未引号、cd失败误删、cron环境差异等常见翻车点。掌握这些基础原理与工程实践,即可构建稳定可复用的运维脚本工具箱。 阅读详情

相关推荐

【FOC无刷电机控制】六步换向、FOC,STM32cubemx从零开始搭建BLDC六步换相代码、FOC代码(基于霍尔传感器)

FOC、六步换相,无刷电机控制

xifan的博客 3万+

MySQL 字符串类型

MySQL 中的字符串大体分为三类,这里不讨论第三类: 长度以字符为单位的(character string 或 nonbinary string):CHAR、VARCHAR、TEXT(共四种:TINYTEXT、TEXT、 MEDIUMTEXT、LONGTEXT) 长度以字节为单位(binary string):BINARY、VARBINARY、BLOB(共四种:TINYBLOB、BLOB、 MEDIUMBLOB、LONGBLOB) 其他:ENUM、SET 下表为各种类型的最大长度: 单位 25

赵丙双的博客 6267

模拟IC设计笔记:拆解一个经典的时钟占空比校正(DCC)电路模块,从理论到SPICE仿真

本文深入解析了时钟占空比校正(DCC)电路在模拟IC设计中的关键作用,特别是在高速ADC应用中。通过晶体管级拆解,详细介绍了基于电荷泵和积分器的模拟反馈型DCC电路设计,包括占空比检测、误差放大与校正执行单元的实现。文章还提供了SPICE仿真验证方法,确保电路在100MHz时钟下的稳定性和性能。

weixin_33725722的博客 425

MySQL set names 命令_mysql set names 命令 和 彻底解决mysql 字符编码问题

1、执行show variables like '%char%';查看数据库字符集:mysql>show variables like '%char%';+--------------------------+---------------------------------------------------------+| Variable_name | Value...

weixin_34221384的博客 2469

汇总药用数据库(Pubchem,bingdingDB,Chembl,ExcapeDB)数据

记载一下如何汇总4大数据库的数据

recher_He1107的博客 3392

手把手教你完成YOLOv11分类识别界面搭建,使用Qt6设计YOLOv11分类识别系统,前台系统+后台管理系统开发实战,全网最详细教程

本项目结合YOLOv11分类识别算法和PySide6框架,开发了一套图形化分类识别系统。系统支持图片、视频和摄像头实时分类检测,并具备完善的用户管理功能,包括登录验证、个人信息修改等模块。最新版本新增了管理员后台管理系统,包含用户管理、权限控制等功能。系统采用MySQL数据库存储用户数据,界面设计采用QtDesigner完成,实现了高效的目标分类与友好的交互体验。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1050

linux差异备份mysql出错_MySQL备份可能遇到的坑

MySQL备份工具,支持各种参数选项,使用不同的选项极有可能影响备份处理过程。本文使用我们常规认为合理的备份参数,测试/验证是否存在容易忽视的坑# 常规备份参数# mysqldumpshell> mysqldump --single-transaction --master-data=2 -B replcrash >dbname_dump_serverid_`date +%Y%m%d`...

weixin_39522103的博客 654

SAP_MM&FI模块-质保金标准解决方案详解

主要讲述了SAP系统质保金的标准实现方案,包含业务背景、后台配置、前台业务操作记录,以及关键点的AI解释;

风沙的博客 683

MySQL8 中文参考(四十四)

每个简单字符集都有一个配置文件,位于目录中。对于名为 MYSYS的字符集,文件名为MYSET*.xml。它使用<map>数组元素列出字符集属性。<map><ctype>为每个字符定义属性。<lower>和<upper>列出小写和大写字符。<unicode>将 8 位字符值映射到 Unicode 值。元素指示用于比较和排序的字符排序,每个排序一个元素。二进制排序不需要<map>元素,因为字符代码本身提供排序。对于在strings目录中的ctype-*MYSET*.cctype_*MYSET*[]

龙哥盟 1059

解决开着代理情况下pip或魔搭下载失败

最近由于经常配环境导致,老是要来回切clash关掉代理,非常的不方便如下面的,魔搭模型下载失败如下面的,pip换源后下载失败。

风吹落叶的博客 2949

《测绘综合能力》——大地测量

《测绘综合能力》大地测量 部分重要(常考)知识点(精简版)。

C_xxy's blog 803

MySQL set names 命令_mysql set names 命令和 mysql 字符编码问题

Reference:https://www.cnblogs.com/digdeep/p/5228199.html先看下面的执行结果: (root@localhost)[(none)]mysql>show variables like 'character%';+--------------------------+--------------------------------------...

weixin_42519514的博客 289

【以太网硬件一】802.3xx标准怎么这么多?它们有什么关系?

IEEE 802.3标准发展历史简介

highman110的博客 5016

浅谈MySQL字符集

Preface MySQL use character set & collation to organize the different charater.It provides a flexible way in setting individual character set on a database,a table even on a single...

diankuozhi9810的博客 387

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

mysql 存取字符集_浅谈MySQL字符集

字符集例子:在mysql里面存储一个a,其实在里面存的是“97”字符集==字符+编码常用的中文字符集:GBK–》国标(左边是中文,右边是编码)韩文字符集、日文字符集、美国字符集(ASCII码)、西欧字符集Unicode字符集(里面整合了中文、韩文、美国等的字符集)(常用的utf-8)操作系统的字符集①在windows下:cmd–》chcp,如果显示“936”,则表示是中文字符集②linux下:ca...

weixin_36139471的博客 295

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

mysql备份字符集_浅谈MySQL备份字符集的问题

[导读] 1 引子MySQL备份时选择字符集是一个难题,特别是字符集不定的业务。mysqldump默认使用utf8,而官方也推荐使用utf8。但实际上,对于中文,部分相当一部分gbk编码字符没有对应的unicode编码,也就是说这部分字符集1 引子MySQL备份时选择字符集是一个难题,特别是字符集不定的业务。mysqldump默认使用utf8,而官方也推荐使用utf8。但实际上,对于中文,部分相当...

weixin_39580682的博客 144

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

浅谈MySQL备份字符集的问题

1 引子 MySQL备份时选择字符集是一个难题,特别是字符集不定的业务。mysqldump默认使用utf8,而官方也推荐使用utf8。但实际上,对于中文,部分相当一部分gbk编码字符没有对应的unicode编码,也就是说这部分字符集使用utf8备份会导致数据丢失。那么有没有解决方法呢? 当然,最直接的方法是将这部分编码的映射加上。但是,这部分的字符集数量并不是少数,而且,更蛋疼的是,似乎找不到...

一只苟延残喘的卑微蝼蚁 360

mysql 字符集 itpub_浅谈mysql字符集

+----------+---------------------------------+---------------------+--------+| Charset| Description| Default collation| Maxlen |+----------+---------------------------------+...

weixin_42361666的博客 310

浅谈mysql字符集

查看数据库当前支持的字符集 mysql> show character set; +----------+---------------------------------+-----...

congcong112233的博客 127

MySQL修改默认引擎和字符集浅谈

本文主要介绍的是MySQL修改默认引擎和字符集的相关资料,需要的小伙伴请参考下面文章的具体内容,希望能否帮助到您。

xiaoweids的博客 196
上一篇: my.cnf和my.ini配置详解
下一篇: mysql日志设置
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值