PHPからMySQLに接続できない:mysqlnd

remi-testからPHP5.5にアップデートすると、PHPからMySQLのデータベースに接続できない事態が発生した。

理由は以下の通り。

 ・「php-mysql」が廃止されて、「php-mysqlnd」に置き換わった
 ・「php-mysqlnd」でmysql_connect()系関数を使用した際、MySQLの古いパスワードフォーマット(16バイト)を使うとDBに接続できない

ソース:PHP:下位互換性のない変更点

よって対処方法としては、

 1.「php-mysqlnd」を使わないで「php-mysql」を使う
  ※今後の事を考えれば「php-mysqlnd」を使ったほうがいいかもしれない・・・

 2.MySQLのパスワードを設定し直す

SET PASSWORD FOR 'username'@'hostname' = PASSWORD('パスワード');

 ※ただし、「my.cnf」に

old_passwords=1

  とある場合は旧パスワードが有効になっているので、

old_passwords=0

  と無効にする必要あり。設定が有効の場合に旧パスワードで設定するには

SET PASSWORD FOR 'username'@'hostname' = OLD_PASSWORD('パスワード');

  で設定すればOK。

タイトルとURLをコピーしました