# do not use utf8, its not "real utf8"
CREATE DATABASE `foo` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# use this :
#
https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4
CREATE DATABASE `foo` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;
CREATE USER 'foo'@'%' IDENTIFIED BY "password";
GRANT ALL ON `foo`.* TO "foo"@"%";
convert :
# 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;
# (Don’t blindly copy-paste this! The exact statement depends on the column type, maximum length, and other properties. The above line is just an example for a `VARCHAR` column.)