博客
关于我
技术分享 | MySQL 8.0:字符集从 utf8 转换成 utf8mb4
阅读量:613 次
发布时间:2019-03-13

本文共 1431 字,大约阅读时间需要 4 分钟。

MySQL 8.0 升级字符集从 latin1 到 utf8mb4 迁移指南

背景说明

随着MySQL 8.0版本的发布,由 latin1 转换为 utf8mb4 已经成为默认字符集的重要变更。为了确保迁移过程平稳且成功,以下将详细说明相关的迁移方案和注意事项。

迁移方案

1. 进行初始准备

  • 创建新的数据库实例:安装并配置一个全新的MySQL实例。
  • 修改MySQL配置文件,关键设置如下:
    [mysqld]init_connect='SET NAMES utf8mb4' character-set-server = utf8mb4collation-server = utf8mb4_general_ciskip-character-set-client-handshake
  • 启用InnoDB引擎,并执行必要的文件格式和存储配置:
    innodb_file_format = Barracudainnodb_file_format_max = Barracudainnodb_file_per_table = 1innodb_large_prefix = ON

2. 停止应用操作

  • 随应用停止,确保不会有新的数据写入入库。可以通过检查主库的GTID或binlog位置来确认。

3. 数据备份过程

  • 导出数据库表结构
    mysqldump -u -p --no-data --default-character-set=utf8mb4 --single-transaction --set-gtid-purged=OFF --databases testdb > /backup/testdb.sql
  • 导出数据文件
    mysqldump -u -p --no-create-info --master-data=2 --flush-logs --routines --events --triggers --default-character-set=utf8mb4 --single-transaction --set-gtid-purged=OFF --database testdb > /backup/testdata.sql

4. 修改表结构和字符集

根据上述备份文件,修改表格和字段的字符编码,替换所有utf8utf8mb4

  • 运行表结构更新脚本:
    mysql -u -p testdb < /backup/testdb.sql
  • 导入数据后,更新字段和数据库的字符集属性:
    alter table t modify column a char CHARACTER SET utf8mb4;alter database sbtest CHARACTER SET utf8mb4;

5. 修改 JDBC 连接参数

确保应用程序使用UTF-8字符编码:

jdbc:mysql://new_database_url?characterEncoding=utf-8&server_character_set=utf8mb4

注意事项

  • 数据库字符集修改:默认字符集变更为utf8mb4,在应用迁移前必须确认数据的一致性和完整性。
  • 字符集迁移工具:考虑使用专用字符集迁移工具加速转换过程,减少性能影响。
  • 备份数量:确保数据备份完整,避免迁移过程中数据丢失。

以上步骤能帮助您顺利完成从MySQL 8.0 Latin1到utf8mb4的字符集迁移,确保系统运行稳定。

转载地址:http://yreaz.baihongyu.com/

你可能感兴趣的文章
去了解拉绳位移编码器的影响因素
查看>>
无法初始化Winsock2.2处理
查看>>
vMotion 操作失败进度卡在14% ,报错: Operation Timed out
查看>>
重置UAG Application admin密码
查看>>
Horizon Daas租户管理平台扩展分配时报:内部错误
查看>>
项目计划甘特图绘制说明
查看>>
嵌入式系统试题库(CSU)
查看>>
图神经网络7日打卡营学习心得
查看>>
Method breakpoints may dramatically slow down debugging
查看>>
【自考】之信息资源管理(一)
查看>>
setup facatory9.0打包详细教程(含静默安装和卸载)
查看>>
ionic4 路由跳转传值
查看>>
pwn题shellcode收集
查看>>
python中的序列化
查看>>
HTTP/2 协议详解
查看>>
2018年3月最新的Ubuntu 16.04.4漏洞提权代码
查看>>
spark概述
查看>>
JavaScript 知识梳理[一] 变量类型,浅拷贝,深拷贝
查看>>
java.security.InvalidKeyException: Illegal key size
查看>>
Linux kernel pwn --- CSAW2015 StringIPC
查看>>