【初心者向け】AWS上でのブログシステム構築12 MySQLの使い方

さて、今回はデータベースソフトウェアであるMySQLの使い方について簡単に紹介したいと思います。MySQLもやれることはたくさんあるのですが、ここではWordPress導入の過程で使用したコマンドを中心に、必要最低限の範囲に絞って説明します。

<スポンサーリンク>

MySQLの全体構成

まずは説明の前提として、MySQLの全体構成を簡単に示します。

というよりも、一般的なデータベースソフトの構成概要ですが、以下の図のようになります。

MySQL内には、複数の「データベース」と呼ばれるデータの集合が含まれています。さらに、各データベースには複数の「テーブル」というものが含まれており、この中に実際のデータが格納されています。

MySQL内のデータに対して操作を行うためには、MySQLにログイン後、データベースとテーブルを指定して処理を行う必要があります。

管理者ID ( root ) のパスワード設定

$ mysqladmin -u root password

MySQLへ最初にアクセスする前に、管理者IDである”root”のパスワード設定を行う必要があります。上記コマンドをそのまま入力すると、その後パスワード入力を促されますので、お好みの文字列を入力することでrootのパスワード設定が完了します。

MySQLへのログイン

$ mysql -u root -p

MySQLにログインするためには、コンソールで”mysql”と入力した後、オプション”-u”を指定し、ログインに使用するユーザーIDを指定します。さらに、ログインパスワードを設定しているユーザーIDの場合には、さらにその後にオプション”-p”を指定し、エンターを押します。すると、パスワード入力が促されるため、パスワードを入力してエンターを押すことにより、MySQLにログインすることができます。

MySQL内のデータベース一覧の表示

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
+--------------------+
4 rows in set (0.00 sec)

データベース一覧を表示するためには、”show databases”コマンドを利用します。なお、MySQLではコマンドの最後に”;”をつける必要がありますので、忘れずに。

特定データベース内のテーブル一覧の表示

 show tables from wordpress;
+-----------------------+
| Tables_in_wordpress   |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.01 sec)

あるデータベース内に作成されているテーブル一覧を出力するためには、”show tables from ‘対象のデータベース名'”と入力します。上の例では、”wordpress”データベース内のテーブル一覧を表示しています。

データベースの作成

mysql> create database wordpress default character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

データベースの作成には、”create database ‘データベース名'”と入力します。上は以前”wordpress”データベースを作成した時に入力したコマンドです。いくつかオプションを付けていますが、それぞれの意味は以下の通りです。

default character set このオプションの後に文字コードを指定することにより、データベースに登録する文字列の文字コード指定することができます。例では”utf8″を指定しています。
collate 文字列の照合順序(文字列の比較方法と捉えると分かりやすいと思います)を指定します。”collate”の後に照合順序を「文字コード_言語名_比較法」という形式で指定します。

照合順序(というよりも文字コード)についてはなかなか奥が深いのですが、上の例では”utf8″という文字コードを前提としており、”ci”で大文字と小文字を区別する指定にしている、ということだけ押さえておけばよいと思います。

ユーザーIDの追加と権限の付与

mysql> grant all on wordpress.* to wordpress@localhost identified by 'パスワード';

MySQLにユーザーIDを追加するとともに、データベースに対するアクセス権限を付与するためには、”grant”コマンドを使用します。なお、ユーザーIDの追加と権限の付与はそれぞれ別のコマンドで実施することもできますが、ここではwordpressデータベースを使う時に利用した、ID追加/権限の付与を併せて行う方法について説明します。

まず、”grant”の後に、付与したい操作権限を入力します。ここでは”all”と入力していますが、これは全ての操作権限を与えることを意味しています。

次に、”on ‘データベース名’.’テーブル名'”という形で、権限付与の対象テーブルを特定します。例では、wordpressデータベースの全てのテーブルに対して権限を付与する指定としています。なお”*”はワイルドカードとも言い、「全てのテーブル」を意味します。そのため、この例は、wordpressデータベース内の全てのテーブルに対して権限付与を行うことを示しています。

さらに続く”to ユーザー名@アクセス場所”という記載で、これまで指定してきた権限をどのユーザーに付与するのかを指定します。指定したユーザーが存在しない場合には、ユーザーIDが自動的に作成されます。また、@の後は「どこからアクセスしてきた場合にこの権限を適用するのか」ということを意味しています。例では”localhost”を指定しており、これはインスタンス外部からではなくインスタンス内部でwordpressユーザーがログインした時に適用する権限であることを示しています。

最後に、”identify by ‘パスワード'”にて、追加するユーザーIDに対するパスワードを指定します。パスワードは” ‘ “でくくる必要があるため、注意が必要です。

MySQLを終了する

mysql> exit

単純に”exit”と入力するだけです。なお、ここでは”;”は必要ありません。また、終了すると言ってもログイン状態から抜けるだけであり、MySQLはバックグラウンドで相変わらず動き続けます。

さて、今回の記事は以上です。MySQLにはここで紹介した以外にも、テーブルの作成やデータベース/テーブル/ユーザーID/権限等の削除のほか、実際にテーブルからデータを抽出したり挿入したりするためのコマンドもあります。

これらはMySQLを使っていく中で必要に応じて調べていくことにより、徐々に身に着けるのがよいと思います。