WindowsでMySQLとMySQL GUI Toolsをインストーラ無しで設定する方法

NICOBOOMのテスト環境のために今更ながら手元のPCにMySQLを入れました。
バックアップからの復帰が楽なのでシステムにインストールしないで済むなら済ませたい派です。MySQLMySQL GUI Toolsはどちらもインストーラ無し版が提供されているので、これ幸いとインストーラ無しで環境を整えてみました。
MySQLを動かすまではすんなりできたのですが、MySQL GUI Toolsでかなりはまったのでここに書いておきます。

MySQLの設定

1. MySQL AB :: MySQL DownloadsからMySQL Community ServerWindows版のWithout installerと書いてあるものをダウンロードします。

2. 適当なディレクトリに解凍します。ダウンロード時に(unzip in C:\)と書いてありますが、Cドライブでなくても大丈夫です。ここでは、F:\mysql-5.0.45-win32に解凍したものとして話を進めます。パスに空白文字が含まれているときは、パスを表すときクォーテーションで囲むのを忘れずに。日本語のディレクトリでも大丈夫かは試してません。

3. Windowsにサービスとして登録しないで済ませたい場合は、F:\mysql-5.0.45-win32\bin\mysqld.exeを実行すればOKです。ログを表示させたいなら--consoleオプションを付けます。

C:\>F:\mysql-5.0.45-win32\bin\mysqld --console

4. あとはちゃんと動いているか試してみるだけ。

C:\>F:
F:\>cd mysql-5.0.45-win32\bin
F:\mysql-5.0.45-win32\bin>mysqladmin -uroot password "thinkbul"
F:\mysql-5.0.45-win32\bin>mysqlshow -uroot -pthinkbul
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+

F:\mysql-5.0.45-win32\bin>mysqladmin -uroot -pthinkbul proc status version
(略)

5. mysqldはCtrl-Cとかでは止まりません。止めたいときは、以下のようにします。

C:\>F:\mysql-5.0.45-win32\bin\mysqladmin -uroot -pthinkbul shutdown

参考:
MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 2.3.5 非インストール Zip アーカイブからのインストール
MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 2.3.10 MySQL の Windows のコマンドラインからの起動

MySQL GUI Toolsの設定

MySQL GUI Toolsには、

が入っています。設定や操作がGUIでできます。軟弱者にはありがたいです。

1. MySQL AB :: MySQL GUI Tools DownloadsからWindows版のWithout installerと書いてあるものをダウンロードします。

2. 適当なディレクトリに解凍します。ダウンロード時に(unzip in C:\)と書いてありますが、Cドライブでなくても大丈夫です。ここでは、F:\MySQL GUI Tools 5.0に解凍したものとして話を進めます。日本語のディレクトリでも大丈夫かは試してません。

3. F:\MySQL GUI Tools 5.0の中のMySQLAdministrator.exeをダブルクリックして、

Server Host: localhost    Port: 3306
Username: root
Password: thinkbul

などとすれば動く…と思いきや、以下のようなエラーメッセージが出てしまいます。

Could not find settings
Either the server service or the configuration file could not be found. Startup
variables and service section are therefore disabled.

解決するには、まずmysqldをサービスとして動かす必要があります(コマンドラインからの実行でGUI Toolsを使いたくていろいろ試したのですが、私には無理でした)。そして、サービスとして動かすためにはmy.iniを設定する必要があります。

4. my.iniを設定します。F:\mysql-5.0.45-win32\のmy-xxx.iniの適当なものをmy.iniにリネームします。どれがいいかは以下を参考に。

my-small.ini for a system with little memory (<= 64M)
my-medium.ini for a system with little memory (32M - 64M)
my-large.ini for a large system with memory = 512M
my-huge.ini for a large system with memory of 1G-2G
my-innodb-heavy-4G.ini a MySQL example config file for systems with 4GB of memory

5. my.iniの[mysqld]セクションに以下のように書き足します。区切り文字はスラッシュであって、バックスラッシュでないことにご注意。

basedir=F:/mysql-5.0.45-win32
datadir=F:/mysql-5.0.45-win32/data

6.MySQLをサービスとして登録します。*1

C:\>F:\mysql-5.0.45-win32\bin\mysqld --install MySQL --defaults-file=F:\mysql-5.0.45-win32\my.ini

手動で起動するサービスとして登録するなら

C:\>F:\mysql-5.0.45-win32\bin\mysqld --install-manual MySQL --defaults-file=F:\mysql-5.0.45-win32\my.ini

ただ単に

C:\>F:\mysql-5.0.45-win32\bin\mysqld --install

とするだけでもサービスとして登録できますが、GUI Toolsが動いてくれません。
登録後に--defaults-fileの設定を書き足したい・書き直したい場合は、レジストリのHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQLのImagePathを

F:\mysql-5.0.45-win32\bin\mysqld --defaults-file=F:\mysql-5.0.45-win32\my.ini MySQL

などと書き換えてください。

7. サービスを開始します。コマンドラインから行うなら

sc start MySQL

と打ち込みます。*2

8. F:\MySQL GUI Tools 5.0の中のMySQLAdministrator.exeをダブルクリックして、

Server Host: localhost    Port: 3306
Username: root
Password: thinkbul

などとすれば、今度は動くはずです。

参考:
MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 2.3.7 オプション ファイルの作成
MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 2.3.11 Windows のサービスとして MySQL を起動する
no sq - MySQL Administrator Error: “Could Not Find Settings”
Error2003-CantConnectToMySQLServer - MySQLForge Wiki


ポイントは

  • サービスとして動かさないとダメ
  • サービスで--defaults-fileを設定しておかないとダメ
  • サービスとして動かすにはmy.iniでbasedir、datadirを設定しておかないとダメ

って点です。どれもただMySQLを動かすには必要ないことなのにGUI Toolsのためには必要で。いやあ、はまったはまった。

*1:サービスの削除はmysqld --remove

*2:サービスの停止はsc stop MySQL、ステータスの確認はsc query MySQL