gpt4 book ai didi

MySQL UTF8 转换 - 为什么要转储数据库?

转载 作者:可可西里 更新时间:2023-11-01 08:54:51 25 4
gpt4 key购买 nike

我需要将我的 MySQL 数据库从 latin1_sweedish_ci 转换为 utf8,看来 utf8_bin 是我的理想选择。我一直在读到一些人已经导出了他们的数据库并重新创建了它们。这真的有必要吗?我不能只运行查询来转换数据吗?

我读到一个人在安装 MySQL 5 时,在 MySQL 编译期间指定了 UTF-8...

最佳答案

您必须导出数据库并进行转换。设置数据库、表和行编码会改变它们将来的操作方式,但不会转换已经存储的数据。

没有数据库编码交换免费的午餐。

在 MySQL 5 中,您必须重置数据库、表和列的所有字符编码,然后重新导入数据。 wordpress guide to changing char sets是执行此操作的良好分步资源。

我建议阅读 Wordpress 操作指南,因为这些步骤解释清楚且清晰,但重点是:

设置数据库字符集:

ALTER DATABASE db_name CHARACTER SET utf8 COLLATE utf8_unicode_ci;

然后设置现有表编码:

ALTER TABLE db_table CHARACTER SET utf8 COLLATE utf8_unicode_ci;

然后用一种编码转储,用另一种编码重新导入

mysqldump --user=username --password=password --default-character-set=latin1_swedish_ci dbname > dump.sql

mysql --user=username --password=password --default-character-set=utf8 dbname < dump.sql

请注意,如果您不想转储和重新加载整个数据库,您可以逐列执行更改,方法是将每个文本列转换为等效的 blob 类型,然后将其转换回文本列 w/Wordpress 指南的 convert columns to blob and back 中描述的所需编码.

关于MySQL UTF8 转换 - 为什么要转储数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6792292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com