gpt4 book ai didi

mysql - 将 MySQL 数据库从拉丁文转换为 UTF-8

转载 作者:IT老高 更新时间:2023-10-28 23:43:58 26 4
gpt4 key购买 nike

我正在将一个网站从 ISO 转换为 UTF-8,所以我也需要转换 MySQL 数据库。

在网上看了各种解决方案,不知道选哪一个。

我真的需要将我的 varchar 列转换为二进制,然后像这样转换为 UTF-8:

ALTER TABLE t MODIFY col BINARY(150);
ALTER TABLE t MODIFY col CHAR(150) CHARACTER SET utf8;

每个数据库的每个列、每个表、每个数据库都需要很长时间。

我有 10 个数据库,每个数据库有 20 个表,大约有 2-3 个 varchar 列(每列 2 个查询),这给了我大约 1000 个查询来编写!怎么做?

已解决:我发布了我使用过的代码:

PASSWORD=""
db=$1

mysqldump --password=$PASSWORD --set-charset --skip-set-charset --add-drop-table --databases "$db" > /home/dev/backup/bdd.sql

QUERY="ALTER DATABASE \`$db\` DEFAULT CHARACTER SET utf8;"
mysql --password=$PASSWORD --database "$db" -e "$QUERY"

mysql --password=$PASSWORD --default-character-set=utf8 < /home/dev/backup/bdd.sql

有关更多信息,请参阅下面的答案。

最佳答案

您可以使用转储非常轻松地做到这一点。使用

进行转储
mysqldump --skip-opt --set-charset --skip-set-charset 

然后创建另一个数据库,将其默认字符集设置为 UTF-8,然后使用以下命令加载您的转储:

mysql --default-character-set=<your iso encoding>

主要思想是在没有任何数据编码迹象的情况下进行转储。
因此,在创建时,表的编码将继承自数据库编码并设置为 UTF-8。通过 --default-character-set 我们告诉 MySQL 自动重新编码我们的数据。

关于mysql - 将 MySQL 数据库从拉丁文转换为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2543993/

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