Eu sou novo no MySQL e gostaria de saber:
Como posso criar um banco de dados com charset utf-8
como fiz no navicat?
create mydatabase;
... parece estar usando algum tipo de conjunto de caracteres padrão.
Nota: Agora, a seguir, é considerada uma prática melhor (consulte a resposta de bikeman868 ):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Resposta original:
Tente o seguinte:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
Para obter mais informações, consulte Conjunto de caracteres do banco de dados e agrupamento no Manual de Referência do MySQL.
utf8mb4
é o que o resto de nós chamautf8
. Então, o que é o MySQL queutf8
você pergunta? É uma versão limitada do utf-8 que funciona apenas para um subconjunto de caracteres, mas falha em itens como emoji. Mais tarde, eles adicionaramutf8mb4
qual é a implementação correta, mas o MySQL precisa ser compatível com os erros antigos, e é por isso que adicionou uma nova codificação em vez de corrigir a antiga. Todos os novos bancos de dados devem usarutf8mb4
.COLLATE utf8mb4_unicode_520_ci
ouutf8mb4_0900_ai_ci
ou mesmo local específico, por exemplo:utf8mb4_vi_0900_ai_ci
. Para MariaDB 10.2.2+, você tem "nopad" agrupamentosutf8mb4_unicode_520_nopad_ci
. dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.htmlutf8mb4_0900_ai_ci
. Parece ser melhor queutf8mb4_unicode_ci
Você deveria usar:
Observe que
utf8_general_ci
não é mais a melhor prática recomendada. Veja as perguntas e respostas relacionadas:Qual é a diferença entre utf8_general_ci e utf8_unicode_ci no Stack Overflow.
fonte
utf8mb4_0900_ai_ci
. Parece ser melhor queutf8mb4_unicode_ci