ホームページ >バックエンド開発 >PHPチュートリアル >PHP と mysql が mysql_connect() に接続できません [function.mysql-connect]: クライアントはサポートしていません
PHP と mysql は接続できません。プロンプトが間違っています:
警告: MySQL_CONNECT () [Function.MSQL-Connect]: クライアントはサーバーから要求された認証プロトコルをサポートしていません。D: XXXXXXXAPACHE-TOMCAT- 8.0.5webapSprojectOpendb .php (5 行目)
接続できませんでした: クライアントはサーバーによって要求された認証プロトコルをサポートしていません。MySQL クライアントのアップグレードを検討しています
php のバージョンは php-4.4.9 です
myslq のバージョンは 5.6 です
バージョンはtomcat のバージョンは 8.0.5 です
PHP 開発環境をローカルに構築したいです (tomcat+mysql+php)。
現在
1. Tomcatとphpが調整され、ページ上にphpinfoが表示されるようになりました。
2. Tomcat と mysql も接続されており、jsp ページを使用して mysql 内のテーブル情報をクエリできます。
注: オンラインで見つかった解決策はどれも機能しません。以下の方法を試してみましたが、やはり同じエラーメッセージが表示されました。
----------------------------------------------- -------------------------------------------------- - -
主に、MySQL アカウントに接続するための暗号化方法を変更します。MySQL 4.1/5.0 は PASSWORD によって暗号化されます。これは次の 2 つの方法で解決できます:
1) MySQL->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD('new_password');
MySQL->FLUSH PRIVILEGES
2) MySQL - >UPDATE MySQL.user SET Password=OLD_PASSWORD('new_password') WHERE Host='some_host' AND User='some_user';
MySQL->FLUSH
---------- -------------------------------------------------- - --------------------------------------
ディスカッションへの返信 (解決策) )
Tomcat、php、mysql はすべて自分でインストールしました
mysql はすべて自分でインストールしました
背景
php 5.3 以降、php の mysql 操作は組み込みの mysql クライアントのみを使用します mysql をインストールすると、インストール プログラムがmysql をインストールする オペレーティング システムの環境変数 PATH にパスが追加されます
これがアクセス不能の根本原因です
対処法
したがって、PATH から mysql のパスを削除する必要があります
ただし、この場合、jdbc が接続できない可能性があります
背景
php 5.3 以降、PHP の mysql 操作は組み込みの mysql クライアントのみを使用します
このクライアントのバージョンは明らかに 5.6 より低いですが、使用には影響しません
理由
mysql をインストールすると、インストール プログラムによって、mysql のインストール パスがオペレーティング システムの環境変数 PATH に追加されます
これがアクセス不能の根本原因です
解決策
したがって、mysql のパスを PATH から削除する必要があります
ただし, この場合、jdbc は mysql に接続できない可能性があり、再起動が必要になる場合があります Configure it
ご返信ありがとうございます。
まず第一に、私が使用しているphpはバージョン5.3以降ではなく、4.4.9です。
理由
mysql をインストールすると、インストール プログラムは、mysql のインストール パスをオペレーティング システムの環境変数 PATH に追加します
これがアクセス不能の根本原因です
解決策
したがって、mysql のパスを PATH から削除する必要があります
ただし、この方法では、jdbc が正しく動作しない可能性がありますmysql に接続できるようになりました。再設定が必要な場合があります
別の質問がありますが、関連があるかどうかはわかりません。
使用時: MySQL->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD('new_password');
パスワードを変更すると、次のプロンプトが表示されます: ERROR 1372 (HY000): Password hash should be a 41-桁の 16 進数
MySQL->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD(''); に変更すると成功します。
※パスワードは空です。
ただし、mysqladmin -u root -p password を使用してパスワードを変更でき、パスワードが空かどうかにかかわらず、jdbc はパスワードにアクセスできます。
この問題はまだ解決されていませんが、他の方法で正常に設定できました。
mysql5.6 をアンインストールし、mysql4.1 をインストールしました。もうそのエラーはありません。
しかし、新たな問題が発生しました。PHP ページに書いたユーザーは A ですが、B@localhost (B はローカル ユーザー名) が mysql にアクセスできないというエラー メッセージが表示されます。
その後、新しいユーザー B が mysql のユーザー テーブルに追加されました。
ついに完成しました。
タイムリーな返信をいただいたモデレーターに改めて感謝します。 。