MySQLで新規DB&専用ユーザー作成

MySQLでDBを新しく作るときはたいてい必ずそれ専用のユーザーをつくると思います。 そうすることで、他のDBへのアクセス制限ができて、しっかりと区別できるわけですね。 このDB作成作業、ほぼ流れ作業化しているので、メモっときます。

  1. パスワードを決める ランダムパスワードを作るならいろんなサイトがある。 (たとえばランダムパスワード生成CGI) 外部サイトを使うのが怖ければmkpasswdというコマンドがlinuxにはあるので、これを使うといいかも。ただし、こちらはyumでexpectをインストールする必要がある。
  2. DB作成権限があるユーザーでMySQLにログイン(たいていはroot)

    1
    mysql -u ユーザー名 -p
  3. 次のコマンドを実行する もちろん「新規ユーザー名」「新規DB名」「パスワード」の部分はぞれぞれに応じて変更すること (自分の場合は「新規ユーザー名」=「新規DB名」)

1
CREATE USER '新規ユーザー名'@'localhost' IDENTIFIED BY 'パスワード'; GRANT USAGE ON * . * TO '新規ユーザー名'@'localhost' IDENTIFIED BY 'パスワード' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; CREATE DATABASE IF NOT EXISTS `新規DB名` ; GRANT ALL PRIVILEGES ON `新規ユーザー名` . * TO '新規ユーザー名'@'localhost';

これで、新規DBとそのDB専用のユーザーができました。 ちなみに、この状態だとlocalhostからの接続しか許可されていない状態になるので、外部からdbを使う場合はそれ用の設定がさらに必要になります。