如何将数据库中的所有字段从latin1_swedish_ci更改为utf8_general_ci?

时间:2012-03-29 07:47:10

标签: mysql sql database replace phpmyadmin

标题全部出现了,对吧? :)

详细说明: 我正在寻找一个可以在phpmyadmin中使用的SQL查询。需要将一个数据库中的所有字段从latin1_swedish_ci更改为utf8_general_ci

2 个答案:

答案 0 :(得分:1)

在你的情况下,主要的问题是当你从表中更改排序/字符集时,表中的数据是latin1,表是utf8直到那时。

您可以尝试使用旧字符集转储表。

mysqldump -uuser -p --default-character-set=latin1 dbname > dump.sql

然后使用新的字符集导入数据库,如下所示:

mysql -uuser -p --default-character-set=utf8 dbname_test < dump.sql

要测试我会将转储导入测试数据库。如果导入后字符不正确。使用pspadnotepad++等编辑器,将文件编码更改为UTF-8。在此之后,您可以尝试导入另一个时间。

大多数时候编码非常烦人,但我希望你能解决它。

当你只有phpmyadmin使用“导出”功能并使用phpmyadmin时也一样。以实际编码导出并尝试以新编码导入,但是您必须更改我认为的文件编码。

答案 1 :(得分:1)

在MySql中将默认排序规则更改为utf8_general_ci:

Open the my.ini file. (C:\xampp\mysql\bin\my.ini)
Find the text [mysqld] and add the below lines.

的[mysqld]

character-set-server = utf8

collat​​ion-server = utf8_general_ci

The above two lines will select a character set and collation at server startup. These settings apply server-wide and apply as the defaults for databases created by any application, and for tables created in those databases.