MySQL Create Database with UTF8 Character Set Syntax

June 21, 2013

Image for MySQL Create Database with UTF8 Character Set Syntax from unsplash.com

I always forget the MySQL create database with UTF8 character set syntax, so here it is:

CREATE DATABASE `mydb` CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL ON `mydb`.* TO `username`@localhost IDENTIFIED BY 'password';

Alternatively, you can use 'CREATE SCHEMA' instead of 'CREATE DATABASE':

CREATE SCHEMA `mydb` CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL ON `mydb`.* TO `username`@localhost IDENTIFIED BY 'password';

I hope this helps someone else too!

UPDATE: This post used to show the FLUSH PRIVILEGES command after the GRANT statements but, as pointed out by Scott Lindsey in the comments, FLUSH PRIVILEGES is unnecessary. For information why this isn't needed, please refer to this article by Jaime Crespo at dbahire.com.