将所有表和字段更改为mysql中utf-8-bin排序规则的脚本。

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

有没有SQLPHP我可以运行的脚本将更改数据库中所有表和字段中的默认排序规则?

我可以自己写一个,但我认为这应该是在这样一个网站上容易获得的东西。如果我能自己想出一个,然后别人发布一个,我会自己发。

提问于
用户回答回答于

小心点!如果您实际上已经将utf存储为另一种编码,那么上就会有真正的混乱。先退后。然后尝试一些标准方法:

例如http://www.cesspit.net/drupal/node/898..._数据库_迁移_latin.html

我不得不将所有文本字段转换为二进制字段,然后返回到varchar/text。

我的数据是UTF 8,存储为latin 1。我所做的:

下降索引。将字段转换为二进制。转换为UTF8---Ci

如果你在打开LAMP,请不要忘记在与db交互之前添加SETNAME命令,并确保设置字符编码头。

用户回答回答于

可以在一个命令(而不是148的PHP)中完成:

mysql --database=dbname -B -N -e "SHOW TABLES" \
| awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' \
| mysql --database=dbname &

为了避免外键问题,添加了SET foreign_key_checks = 0;SET foreign_key_checks = 1;

扫码关注云+社区