MySQLのインストールから超簡単な使い方まで

DBなんて触ったこともなかったのですが、WordPressを使いたくなったので渋々DBの勉強をする。とりあえず管理者的なことは置いといて、ユーザーとしてDBの作成と参照ができればいーや、という感じで。

WordPressMySQLを使ってるらしいので、MySQLの勉強。大雑把なところはこちらのサイトを読めば大体分かるはず。

ダウンロード

公式サイトからダウンロード。
MySQL :: MySQL Community Downloads
早速詰まる。"MySQL Community Server"と"MySQL Enterprise Subscription"の2種類あるが・・・見たところ無償か有償かっていうのが大きな違いのようなので、Community Serverの方をダウンロードする。

で、また詰まるw何で3種類も!

Essentialsはおそらく最低限のパッケージなんだろうと思うので、インストーラーつきのMSI Installerをダウンロードする。

すると、何故かMySQL.comへの登録を勧められるが遠慮なく"No thanks, just take me to the downloads!"を選んでおきます。

で、ようやくダウンロード成功。

インストール

以下の3通りからSetup Typeを選ぶ。

  1. Typical
  2. Complete
  3. Custom

とりあえずCustomでしょう。すると以下のものからインストールするコンポーネントを選べるようです。

  • MySQL Server
  • Client Programs
    • MySQL Command Line Shell
    • MySQL Command Line Utilities
    • MySQL Server Instance Config
  • MySQL Instance Manager
  • Documentation
  • Developer Components
    • C Include Files / Lib Files
    • Embedded Server
    • Scripts, Examples

よく分からないのでデフォルトで。インストール先ディレクトリだけ変えておけばいいか・・・。

設定後、よく分からないMySQL Enterpriseの案内が出た後に、configureするかどうか聞かれるのでチェックを入れておく。

初期設定

こちらのサイトが分かりやすい。かつ詳しい。参考になります。

Windows 環境への MySQL 5.0.27 セットアップ方法 :: ソフトウェア :: Pocketstudio'z log

説明は省くけど、以下のような設定をしてみた。

  • Detailed Configuration
  • Developer Machine
  • Multifunctional Database (MyISAM)
  • Installation Path (InnoDB使ってないんだから設定しなくてよくね?)
  • Decision Support (DSS)/OLAP (そんな大げさなことに使わないが・・・・)
  • Enable TCP/IP Networking は OFF (local だとnamed pipeで通信する、らしい)
  • Enable Strict Mode は ON
  • Manual Selected Default Character Set/ Collation は cp932 (いわゆるSJIS)
  • Install As Windows Service は ON、Service Name は MySQL
  • Lanch the MySQL Server automatically は OFF
  • Include Bin Directory in Windows PATH は ON
  • Modify Security Settings のチェックは OFF (どうせローカルオンリー)

疲れた・・・。とりあえず終わった。

実行

こちらのサイトを参考に。

MySQL初心者入門講座

まずMySQLを起動する。

$ net start mysql
MySQL サービスを開始します.
MySQL サービスは正常に開始されました。

スタートメニューからCommand Line Clientを実行するとログイン(?)できる。

まずはデータベースを作ってみる。

mysql> CREATE DATABASE testdb;
Query OK, 1 row affected (0.02 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
| testdb             |
+--------------------+
4 rows in set (0.00 sec)

色々既存のDBがあるけど、とりあえず気にしない。MySQLの構成情報もDBとして持ってるみたい。

続いてテーブルを作る。こんなんでいいのかな。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.1.17 CREATE TABLE 構文

mysql> USE testdb;
Database changed

mysql> CREATE TABLE mytable (
    -> name varchar(20) NOT NULL,
    -> part varchar(20) NOT NULL,
    -> actor varchar(20) NOT NULL,
    -> production varchar(20) NOT NULL
    -> );
Query OK, 0 rows affected (0.27 sec)

mysql> SHOW TABLES;
+------------------+
| Tables_in_testdb |
+------------------+
| mytable          |
+------------------+
1 row in set (0.00 sec)

mysql> DESCRIBE mytable;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| name       | varchar(20) | NO   |     | NULL    |       |
| part       | varchar(20) | NO   |     | NULL    |       |
| actor      | varchar(20) | NO   |     | NULL    |       |
| production | varchar(20) | NO   |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
4 rows in set (0.03 sec)

mysql> SELECT * FROM mytable;
Empty set (0.00 sec)

select では何も出てこないですね。当たり前ですが。

ではデータを追加してみる。

なければ INSERT、あれば UPDATE (2007-01-17)

mysql> INSERT INTO mytable VALUES
    -> ('平沢唯','ギター','豊崎愛生','ミュージックレイン'),
    -> ('秋山澪','ベース','日笠陽子','アイム'),
    -> ('田井中律','ドラム','佐藤聡美','青二'),
    -> ('琴吹紬','キーボード','寿美菜子','ミュージックレイン');
Query OK, 4 rows affected (0.02 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM mytable;
+----------+------------+----------+--------------------+
| name     | part       | actor    | production         |
+----------+------------+----------+--------------------+
| 平沢唯   | ギター     | 豊崎愛生 | ミュージックレイン |
| 秋山澪   | ベース     | 日笠陽子 | アイム             |
| 田井中律 | ドラム     | 佐藤聡美 | 青二               |
| 琴吹紬   | キーボード | 寿美菜子 | ミュージックレイン |
+----------+------------+----------+--------------------+
4 rows in set (0.00 sec)

おおー。

mysql> SELECT * FROM mytable WHERE production='ミュージックレイン';
+--------+------------+----------+--------------------+
| name   | part       | actor    | production         |
+--------+------------+----------+--------------------+
| 平沢唯 | ギター     | 豊崎愛生 | ミュージックレイン |
| 琴吹紬 | キーボード | 寿美菜子 | ミュージックレイン |
+--------+------------+----------+--------------------+
2 rows in set (0.00 sec)

おおおー。すげー!ちょっと面白くなってきた!

大体使い方は分かってきたので、あとはWordPressからどうやって使うのか、というとこですかね。