Top > Blog Index > MySQL5 パスワードなしでデータベースにアクセスできるユーザ設定(Windows)

MySQL5 パスワードなしでデータベースにアクセスできるユーザ設定(Windows)

久しぶりのMySQLでの作業。 2003年に開発したウェブアプリケーションを保守することになるとは。 しかも保守料をもらっていないのですがorz.

愚痴はさておき、 過去のアーカイブやメモを掘り起こして作業を開始... アプリケーション部分は幸い保全してあったので問題なかったのですが、 依存している外部アプリ... JDK1.4がサポート終了、MySQL4.0もサポート終了...など、 さすがに古いシステムを再生するのは厳しいものがあります。

MySQL4.0を使いたかったのだが、既に5.0以前のバージョンはサポートしていないようです。

http://dev.mysql.com/downloads/
MySQL Server versions before MySQL 5.0 are no longer supported.

いつも通り foo ユーザでパスワードなしで アクセスできるようにセットアップしたかったのだが、 結構それが大変だったので、メモ。

なおOSはWindowsXPです。

パスワードなしユーザ作成方法 for mysql v5.0.18 windows

http://www.powerdee.com/it/mysql/userManagement.htmlを参考に...

普通にインストールすればOK,ただし、 インストール後の Configuration Wizard の modified security setting の項目のチェックを外すことをお忘れなく。

インストール後に foo ユーザを追加

Windowsのコマンドプロンプトにて...

まず root ユーザでパスワードなしに mysql データベースにアクセスできるか確認します。

> mysql -u root mysql
mysql>

次に以下のようにしてfooユーザで localhost からパスワードなしに アクセスできるように設定します。

mysql> grant all on *.* to foo@localhost;
ERROR 1133 (42000): Can't find any matching row in the user table

いきなり設定しようとしてもNGです。 そこで、以下の設定をしてから再度 grant all ... します。

mysql> select @@global.sql_mode;
+----------------------------------------------------------------+
| @@global.sql_mode                                              |
+----------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> set sql_mode="";
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to foo@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> quit

foo ユーザで実際にパスワードなしアクセスができるか確認します。

> mysql -u foo mysql
mysql> select User from User;

〜foo〜ユーザが出てくるか確認(念のため)

mysql> quit