Crie um banco de dados MySQL com charset UTF-8


142

Eu sou novo no MySQL e gostaria de saber:

Como posso criar um banco de dados com charset utf-8como fiz no navicat?

create mydatabase;

... parece estar usando algum tipo de conjunto de caracteres padrão.

Respostas:


232

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.


1
MySQL utf8mb4é o que o resto de nós chama utf8. Então, o que é o MySQL que utf8você 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 adicionaram utf8mb4qual é 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 usar utf8mb4.
Stijn de Witt

Se você quer ir para baixo o coelho: COLLATE utf8mb4_unicode_520_ciou utf8mb4_0900_ai_ciou mesmo local específico, por exemplo: utf8mb4_vi_0900_ai_ci. Para MariaDB 10.2.2+, você tem "nopad" agrupamentos utf8mb4_unicode_520_nopad_ci. dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
Frank Forte

@shellbye Considere atualizar sua resposta para mencionar utf8mb4_0900_ai_ci. Parece ser melhor queutf8mb4_unicode_ci
Manuel Jordan

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.