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('新パスワード');
とする必要があるみたいです。