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环境差异等常见翻车点。掌握这些基础原理与工程实践,即可构建稳定可复用的运维脚本工具箱。 阅读详情

相关推荐

控制台模拟前端请求实现快速刷网课时长

本教程仅用于学习前端技术和网页开发,旨在提供教育与技术指导。对于任何未经授权或违反规定的使用行为,本人不承担任何责任。注意到那个serive后面有timestamp时间戳,暗示它很可能就是每30秒汇报一次进度和播放时长的命令,我们右键——复制——复制为fetch。有的网站上的网课需要的不仅仅是进度,而是时长,所以倍速插件失效,但我们可以使用控制台命令来模拟请求实现快速刷网课时长。尝试修改即可,例如我修改time为800,然后复制粘贴到控制台执行。播放视频,等待前端请求出现,然后复制前端请求为fetch。

m0_74823408的博客 2065

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

ST7789驱动实战:从SPI时序到RGB565显示的完整配置解析

本文详细解析了ST7789液晶驱动芯片的SPI时序配置与RGB565显示实现,从数据手册解读到代码实战,涵盖SPI接口配置、关键寄存器设置及完整初始化流程。通过优化DMA传输和常见问题排查,帮助开发者高效驱动ST7789显示屏,适用于嵌入式显示项目开发。

weixin_29162439的博客 183

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

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

weixin_34221384的博客 2469

Delphi 13 Beta初体验:手把手教你安装RAD Studio Ganymede,并实测新条件运算符

本文详细介绍了Delphi 13 Beta(代号Ganymede)的安装步骤和新特性,重点解析了新增的条件运算符语法。通过实测对比,展示了64位IDE的性能提升和新语法在代码简洁性上的优势,为开发者提供了从安装到实战的完整指南。

weixin_30399821的博客 203

UE5高斯泼溅落地全链路:从PLY导入到实时渲染的工程实践

3D高斯泼溅(3D Gaussian Splatting)正从NeRF后处理技术演进为新一代隐式几何渲染范式,其核心在于以可微椭球体替代传统三角面片,通过协方差矩阵与球谐系数实现高质量体素化渲染。该技术突破点云精度瓶颈,但与UE5现有资产管线存在根本性不兼容——静态网格导入器无法解析scale/rot/sh系数等非标顶点语义,标准光栅化管线亦无法执行高斯核采样计算。XV3DGS-UEPlugin通过自定义资产类型、StructuredBuffer GPU数据流与专用材质节点,将高斯泼溅重构为可编辑、可LOD

weixin_33692177的博客 357

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

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

weixin_39522103的博客 654

基于simulink的BMS系统中电池单体故障隔离与恢复建模

本文介绍了使用Simulink构建BMS电池单体故障诊断与容错控制模型的方法。主要内容包括:1)搭建12串锂电池组模型;2)实现单体故障注入(过压、断线等);3)设计故障诊断与隔离模块(采用Stateflow状态机);4)开发恢复判断逻辑(需满足电压、温度等条件);5)系统监控与仿真设置。文章还提供了工程实践建议,如防环流设计、通信冗余等,并指出进阶方向(多故障处理、AI预警等)。该模型适用于新能源汽车、储能系统的BMS设计,可提高系统可靠性和安全性。

xiaoheshang_123的博客 140

MySQL8 中文参考(四十四)

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

龙哥盟 1059

【第33话:车辆控制】自动驾驶车辆运动学模型推导及详解

自动驾驶车辆的运动学模型以自行车模型为核心,通过状态方程。

一碗白开水一 830

支付宝h5参数如何实现跳转?(包含相关Demo代码)

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 3245

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

Arduino与Proteus仿真实例-LCD2004-I2C(PCF8574)驱动仿真

LCD2004-I2C(PCF8574)驱动仿真 PCF8574/74A 通过两线双向 I2C 总线(串行时钟 (SCL)、串行数据 (SDA))提供通用远程 I/O 扩展。 LCD2004,即2004字符型液晶显示器,是一种点阵模块,用于显示字母、数字、字符等。 它由 5x8 个点阵位置组成; 每个位置可以显示一个字符。 两个字符之间有一个点间距,行之间有一个空格,从而将字符和行分开。 模型 2004 表示它显示 4 行,每行 20 个字符。 在前面的实例中对PCF8574和LCD2004的已经做了详细介

视觉与物联智能 1165

浅谈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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

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

weixin_36139471的博客 295

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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

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

weixin_39580682的博客 144

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

浅谈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、付费专栏及课程。

余额充值