page_adsence

2011年3月9日水曜日

DBDesigner4からMySQLサーバに接続する方法

DBDesigner4から自分のWindowsに入れてあるVMWare上のMySQLサーバに接続しようとした時のログ。

MySQLに接続しようとすると
「 dbExpress Error Invalid Username/password」
というエラーが発生して繋がらなかった。
で、MySQLを見てみたら、外部ホストから接続できるようにしてなかった。

MySQLにログインして、mysqlのDBを選択
GRANT ALL PRIVILEGES ON *.* to ユーザー名@"ホストIP" IDENTIFIED BY 'パスワード' WITH GRANT OPTION;

で、もう一回試してみたら再び同じエラーが…。
ググってみると、いろいろ引っかかってきた。

MySQL4.1以降の認証方式の違いで、MySQLに接続時に必ず
「 dbExpress Error Invalid Username/password」
といったエラーが発生する。
これは
「ユーザー名かパスワードが違う」
というエラーで、認証情報があっていても繋がらない。

これを回避するには以下のSQLを実行する必要がある。
SET PASSWORD FOR 'ユーザー'@'ホスト' = OLD_PASSWORD('新パスワード');
例)
SET PASSWORD FOR 'root'@'Windows上のVMnet8のIP' = OLD_PASSWORD('新パスワード');

で、もう一回接続。
キターーー。

とりあえず、これで問題ないみたいです。
が、PHP5.3以降はこの設定が使えないみたいなので、
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新パスワード');
とする必要があるみたいです。