今天,我的数据库字符集和排序规则被设置为latin1。但是,数据库中的所有表都已设置为默认CHARSET=utf8,并且所有数据都是utf8。
如果将字符集和数据库的排序规则更改为utf8是否安全?
在my.cnf文件中设置默认设置是否安全:
客户端默认值-字符集=utf8 8
米舍尔德默认值-字符集= utf8
数据库中的典型表如下所示:
CREATE TABLE `tblpayment` (
`paymentid` int(11) NOT NULL AUTO_INCREMENT,
`userid` mediumint(9) DEFAULT NULL,
`payed` enum('False','True') CHARACTER SET latin1 DEFAULT 'False',
PRIMARY KEY (`paymentid`)
) ENGINE=InnoDB AUTO_INCREMENT=72803 DEFAULT CHARSET=utf8;正如您可以看到的那样,枚举"payed“出于某种原因仍然在使用latin1,但是表的其余部分是utf8。将枚举的字符集改为utf8是否安全?
发布于 2012-02-23 17:11:05
设置默认字符集和排序规则是完全安全的。这将确保今后的DDL更改将使用utf8,但不会影响使用latin1的现有列。这些必须转换为utf8。备份数据,因为存在数据损坏(一个例子)的风险。
为了完整起见,我将指出,在my.cnf中添加更改将需要重新启动服务器。
https://dba.stackexchange.com/questions/13786
复制相似问题