# For each database:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# For each table:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# For each column:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# The above line is just an example for a `VARCHAR` column.)
1条答案
按热度按时间gtlvzcf81#
本文将详细介绍此过程。https://mathiasbynens.be/notes/mysql-utf8mb4
左、右;
因此,整个过程中最大的问题是数据完整性。我们的意思是,我们希望数据不会丢失。因此,作为第一步,我建议创建数据库备份。一旦您有了此副本,如果出现问题,您就可以随时使用此副本来保护您。安全第一!因此,让我们来详细说明此过程。
1.创建数据库的备份
1.将MySQL服务器至少升级到v5.5.3,因为这是
UTF8MB4
开始受支持的版本1.修改数据库、表和列。您可以执行以下操作
现在,由于mysql已经保持了这个功能向后兼容,那么你应该不会看到任何奇怪的行为(数据丢失)。
1.检查列和索引键的最大长度。从utf8转换为utf8 mb 4时,列或索引键的最大长度(以字节为单位)不变。因此,如果您有一个
tinytext
,则可以存储的最大数据量为255字节。因此,随着开销的增加,您可以存储的数据将减少。因此,一般情况下,请特别检查您的tinyx
字段(您应该检查所有字段,但较小的字段更有可能耗尽字节)。1.修改连接、客户端和服务器字符集。通常,只要您有
utf8
,您就应该用utf8mb4
替换。1.运行
mysqlcheck -u root -p --auto-repair --optimize --all-databases
,以避免遇到一些奇怪的错误,其中UPDATE语句没有任何效果,即使没有抛出任何错误。