勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

adminerでMySQLに接続しようとするとエラーになる場合の対応方法

   2024/03/04  MySQL

新しく構築したサーバにadminerを入れて接続しようとすると、「mysqlnd cannot connect to MySQL 4.1~~」のようなエラーが表示されてい接続出来なかった。以下に対応方法をメモ。

 

エラー内容

以下エラーメッセージの全文。

mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

 

翻訳すると以下のような内容。

mysqlnd は、古い安全でない認証を使用して MySQL 4.1 以降に接続できません。管理ツールを使用して、コマンド SET PASSWORD = PASSWORD('your_existing_password') でパスワードをリセットしてください。これにより、新しい、より安全なハッシュ値が mysql.user に保存されます。このユーザーが PHP 5.2 以前で実行される他のスクリプトで使用されている場合は、my.cnf ファイルから old-passwords フラグを削除する必要がある場合があります。

 

対応方法

サーバにSSH接続し以下の通り進める。

#MySQLの設定ファイルを開く
/etc/my.conf

#以下の項目があれば削除
old_passwords=1

#MySQLに接続
mysql -u [ユーザー名] -p

#以下を実行
set password for 'ユーザー名'@'localhostやホスト名' = password('パスワード');

 - MySQL

  関連記事

htmlspecialcharsを通してMySQLに格納したものを元に戻して出力

MySQLにHTMLタグを入れたくない場合にhtmlspecialcharsを使 ...

MySQLのバイナリログ(/var/lib/mysql/binlog)を適切に削除する方法

レンタルしているVPS内のファイルを整理していると「/var/lib/mysql ...

MySQLにてdate型のカラムから曜日を計算し表示する方法

MySQLにてdateもしくはdatetime型のデータを取り出して曜日もあわせ ...

MySQLでtext型カラムに入っている数値をint型としてソートする

MySQLでtext型として指定されているカラムがあり、その中には文字列であった ...

MySQLでグループ化したものを条件で絞る(HAVING)

正規化したテーブルがあってその中には idとtagのカラムがある。 でtagの方 ...