created: 2021-04-11T03:40:25.000Z

MySQLで最初にユーザとデータベースを作成する

アプリを作り始めるときにやる手順。MySQL8での作業。

データベースの作成

COLLATE は、utf8mb4_bin が一番厳密な区別(全角/半角の区別など)を行ってくれるのでまずそれを検討し、アプリの要件によっては utf8mb4_ja_0900_as_cs など少し親切なものを使う。

CREATE DATABASE myapp DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

ユーザの作成

いったん権限はすべてつけて作成してしまう。一通り作業がひと段落したらアプリごとの要件によって棚卸し。

CREATE user 'myappadmin' @'localhost' IDENTIFIED by 'xxxxxxxxxxxxxxxxx';
GRANT ALL ON myapp.* TO 'myappadmin' @'localhost' WITH GRANT OPTION;

なお、 FLUSH PRIVILEGES は権限管理専用のステートメントを使っていれば不要なんだそうだ。

参考