使用字符集UTF-8创建MySQL数据库


142

我是MySQL的新手,我想知道:

如何utf-8像在navicat中一样使用字符集创建数据库?

create mydatabase;

...似乎正在使用某种默认字符集。

Answers:


232

注意:以下内容现在被认为是更好的做法(请参见bikeman868的答案):

CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

原始答案:

尝试这个:

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;

有关更多信息,请参见《 MySQL参考手册中的“ 数据库字符集和排序规则 ”。


1
MySQL utf8mb4就是我们其余的人所说的utf8。那么utf8您问MySQL是什么?它是utf-8的受限版本,仅适用于部分字符,但不适用于emoji表情。后来他们添加utf8mb4了正确的实现,但是MySQL必须保持向后兼容它的旧错误,因此这就是为什么添加了新编码而不是修复旧编码的原因。所有新数据库都应使用utf8mb4
Stijn de Witt

如果你想下去了兔子洞: COLLATE utf8mb4_unicode_520_ci或者utf8mb4_0900_ai_ci甚至是特定于语言环境,例如: utf8mb4_vi_0900_ai_ci。对于MariaDB 10.2.2+,您具有“ nopad”归类utf8mb4_unicode_520_nopad_cidev.mysql.com/doc/refman/8.0/zh-CN/charset-unicode-sets.html
Frank Forte

@shellbye考虑更新您的答案以提及utf8mb4_0900_ai_ci。似乎比utf8mb4_unicode_ci
Manuel Jordan

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.