mysql更改表字符集和排序方式的时候出现如下错误。

(HY000): Error on rename of .... (errno: 150). 

因为表中的外键或主键的问题。


需要修改FOREIGN_KEY_CHECKS=0的值为0。然后再更改该表的字符集和排序方式,然后再把该变量值改回为1。即可。

使用如下的命令更改即可。


"use confluence;SET FOREIGN_KEY_CHECKS=0; alter table $i convert to character set utf8 collate utf8_bin;SET FOREIGN_KEY_CHECKS=1;"