MySQLサーバとAPPサーバを別にする際のトラブル

192.168.0.4をAPP+MySQL(Master)
192.168.0.5をMySQL(Slave)
にしようと思い、
単純に
PHPで
192.168.0.5のMySQLに接続、SELECTしてみた。

エラーが出てしまった。

packet 6 bytes shorter than expected

mysqlnd cannot connect to MySQL 4.1+ using old authentication

などと書いてある。

ググってみたら、userテーブルの中のPasswordカラムが16バイトのままで

古い。

userテーブルを確認すると、passwordカラムのデータ型はchar(41)、
パスワードが16バイトでした。

SELECT password(‘test’);

で確認すると、16バイト。

MySQL4.1以降では、
http://dev.mysql.com/doc/refman/4.1/ja/password-hashing.html にあるとおり。

my.cnfにある
[mysqld]
old-passwords

#old-passwords
にして、再起動。

そしたら、正常につながった。

約5日間も悩んだ。

192.168.0.4にあるPHPから192.168.0.5のMySQLをSELECTできた。

コメントをどうぞ

Commenting rules

  • Try to keep your comments as relevant as possible.
  • No HTML/JavaScript/BBcode.
  • Don't be abusive: No racism, homophobia or any other nastiness.
  • Feel free to express your opinion, but do so in an eloquent way.

If you do not respect these rules your comments may be edited or even deleted.