DBなんて触ったこともなかったのですが、WordPressを使いたくなったので渋々DBの勉強をする。とりあえず管理者的なことは置いといて、ユーザーとしてDBの作成と参照ができればいーや、という感じで。
WordPressはMySQLを使ってるらしいので、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を選ぶ。
- Typical
- Complete
- Custom
とりあえずCustomでしょう。すると以下のものからインストールするコンポーネントを選べるようです。
- MySQL Server
- MySQL Server Datafiles
- Client Programs
- 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を起動する。
$ 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からどうやって使うのか、というとこですかね。