勉強したことのメモ

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

  関連記事

MySQLiでDELETE文

MySQLiでDELETE文 ■ソース $mysqli = new mysqli ...

MySQLで全国の市区町村のデータを入手し、抽出する方法

都道府県と市区町村が連携したセレクトメニューを作成したかった。具体的には大阪府を ...

MySQLで指定の順にデータをソートする方法(ORDER BY FIELD)

MySQLで指定した順にソートしてデータを取り出したい。通常だと主キーだったり何 ...

MySQLで特定カラムの
タグを改行コードに一括置換させる方法

MySQLで特定カラムの<br>タグを改行コードに一括置換したかった ...

MySQLでCSVから列を指定してインポート

MySQLでCSVからデータをインポートしたかった。またエクセル風にいうA列はi ...