MySQLでデータベースの作成、権限の付与、CMSなどのDBの準備

データベース作成

create database [DB名];
データベースを新規で作成する場合は、create databaseを実行します。作成の権限がないと実行できないコマンドですので最初はrootか何かで作らないとダメです。
mysql> create database sample_db;
Query OK, 1 row affected (0.00 sec)

文字コードを指定して作成する時は、create database sample_db character set utf8;という感じで文字コードをつけてあげればいいです。
まちがって作成してしまったら、削除します。
# drop database [DB名];

ユーザーの作成と権限の付与

私は面倒くさがりなので、ユーザー作成と権限の付与がいっぺんにできるgrantを使います。設定する項目はDB名、ユーザー名、ホスト名(たいていはlocalhost)、パスワードです。つまりDBの接続に必要な4つの要素になります。
DB名

  • ユーザー名
  • ホスト名(たいていはlocalhost)
  • パスワード

grant all privileges on [DB名].* to [username]@[hostname] identified by '[password]' with grant option;

ユーザーの確認

select user,host from mysql.user;
もう誰でも気がつくようなことではりますが、ユーザーはmysqlのテーブルにデータとして登録されています。mysql自体の設定情報もDBに登録されているというわけなので通常のテーブル操作と同じということになります。
mysql> select user,host from mysql.user;
+------------------+-----------+
¦ user ¦ host ¦
+------------------+-----------+
¦ root ¦ 127.0.0.1 ¦
¦ debian-sys-maint ¦ localhost ¦
¦ root ¦ localhost ¦
¦ user ¦ localhost ¦
¦ root ¦ omnioo ¦
+------------------+-----------+
5 rows in set (0.00 sec)

作成したユーザーの権限確認
mysql> show grants for 'user'@'localhost';
ユーザーの削除

まちがって作ってしまったらそのユーザーを削除
# delete from mysql.user where user='[username]';
該当のユーザーがいるテーブルのレコードを削除します。where節の後ろはもちろんホスト名やパスワードでも構いませんがここでは割愛。

基本的なところはこんな感じですが、ここら辺りも実際はかなり高機能です。ホスト名はワイルドカードで設定できたり(つまりホストは何でもいいっていう設定)、部分的にワイルドカードにする(サブドメインの部分だけワイルドカード)とかができます。