千家信息网

mysql字符集修改

发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,本实验的环境:linux系统:cat /etc/redhat-releaseCentOS release 6.5 (Final)数据库环境(源码编译,多实例):select version();+--
千家信息网最后更新 2025年11月14日mysql字符集修改

本实验的环境:

linux系统:

cat /etc/redhat-release

CentOS release 6.5 (Final)

数据库环境(源码编译,多实例):

select version();

+------------+

| version() |

+------------+

| 5.5.32-log |

+------------+

模拟的是将latin1字符集数据库修改UTF-8字符集的数据库的过程

创建latin1字符集的数据库:

mysql> create database anguo default character set = latin1 default collate = latin1_swedish_ci;

Query OK, 1 row affected (0.00 sec)

创建latin1字符集的表:

create table student(id int(4) not null auto_increment,name varchar(20),primary key(id)) default character set = latin1 default collate = latin1_swedish_ci;

set names latin1;

insert into student(name) values('zhang'),('he'),('hou'),('liu'),('安果'),('张三');

修改步骤:

1)导出表结构

mysqldump -uroot -pmysql -S /data/3306/mysql.sock --default-character=utf8 -d anguo>/data/backup/createanguo.sql

其中 -default-character=utf8表示设置以什么字符集连接,-d表示只导出表结构不导出数据

2)手工修改createoldboy.sql中表结构定义的字符集为新的字符集

sed -i 's/latin1/utf8/g' /data/backup/createanguo.sql

注意:批量替换的时候确保相关字段里面没有latin1相关的字符。

3)确保记录不再更新,导出所有记录

mysqldump -uroot -pmysql -S /data/3306/mysql.sock --quick --no-create-info --extended-insert --default-character-set=latin1 anguo >/data/backup/dataanguo.sql

--quick:该选项用于转储大的表,它前置mysqldump从服务器一次一行地检索表中的行而不是检索所有行,并在输出前将它缓存到内存中

--extended-insert: 使用包括几个values列表的多行insert语法,这样使转储文件更小,重载文件时可以快速插入

--no-create-info:不到出每个转储表的create table语句

--default-character-set=latin1: 按照原有的字符集导出所有数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码

4)打开dataanguo.sql,将set names latin1修改成set names utf8

sed -i 's/latin1/utf8/g' /data/backup/dataanguo.sql

注意:批量替换的时候确保相关字段里面没有latin1相关的字符。

5)使用新的字符集创建数据库

create database anguo default character set = utf8 default collate = utf8_general_ci;

6)创建表,执行createoldboy.sql

mysql -uroot -pmysql -S /data/3306/mysql.sock anguo < /data/backup/createanguo.sql

7)导入数据,执行初始化

mysql -uroot -pmysql -S /data/3306/mysql.sock anguo < /data/backup/dataanguo.sql

注:部分内容参考深入浅出MySQL数据库开发、优化与管理维护

字符 数据 字符集 数据库 文件 结构 字段 时候 环境 检索 深入浅出 一行 中表 乱码 内存 内容 实例 手工 服务器 步骤 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 鱼骨头网络技术 校园网络安全与病毒防范 云端服务器如何传递给单片机 湖北网络技术开发采购 sql数据库卡死 从事软件开发和系统的集成 湖南安智网络技术有限公司 关于数据库关系的好处 京剧猫怎么连接服务器 医院网络安全突出问题 软件开发专业可进高铁行业吗 企业网络安全准入控制系统售价 维护数据库的操作是 网络安全的四个体系 新浪分期网络安全保护 吉林信息化软件开发服务应用 数据库指示器类 思科怎么启动服务器 贵阳多媒体安全文化展厅软件开发 深圳办公系统软件开发价钱 云端服务器如何传递给单片机 三维可视化手机软件开发 联想服务器默认管理口6 网络安全知识漫谈 万年软件开发设计 怎么2008关闭服务器共享文件 服务器地址访问不了什么原因 嘉定区信息软件开发管理 校园网络安全面临的威胁图片 开启飞行模式用公用网络安全吗
0