ホームページ  >  記事  >  バックエンド開発  >  PHP と mysql が mysql_connect() に接続できません [function.mysql-connect]: クライアントはサポートしていません

PHP と mysql が mysql_connect() に接続できません [function.mysql-connect]: クライアントはサポートしていません

WBOY
WBOYオリジナル
2016-06-23 13:57:121151ブラウズ

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
---------- -------------------------------------------------- - --------------------------------------


ディスカッションへの返信 (解決策) )
mysql は自分でインストールしましたか?

Tomcat、php、mysql はすべて自分でインストールしました

mysql はすべて自分でインストールしました

背景

php 5.3 以降、php の mysql 操作は組み込みの mysql クライアントのみを使用します
明らかにこのクライアントのバージョンは 5.6 より低いですが、使用には影響しません
理由

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です。

次に、PATH に mysql パスがありません。


背景
php 5.3 以降、PHP の mysql 操作は組み込みの mysql クライアントのみを使用します
明らかに、このクライアントのバージョンは 5.6 より低いですが、使用には影響しません

理由

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 のユーザー テーブルに追加されました。
ついに完成しました。

タイムリーな返信をいただいたモデレーターに改めて感謝します。 。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。