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
普通にインストールすれば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