0

そこで、データベースにアクセスして書き込む PHP サイトをセットアップしようとしています。これは比較的単純なはずですが、パーミッションの問題が山積みで、PHP を初めて使用するので、すべてを修正する方法がわかりません。

まず、データベースにアクセスしようとすると、次の警告が表示されます。

Warning: mysqli_connect(): The server requested authentication method unknown to the client [mysql_old_password]

これにより、接続も失敗します。

Warning: mysqli_connect(): (HY000/2054): The server requested authentication method umknown to the client

私の調査では、この警告は PHP のバージョン管理によるパスワード ハッシュに関連していることがわかりました (リンク) 。

ただし、そのページでソリューションを実行しようとすると、次のエラーが発生します。

Error Code: 1044. Access denied for user 'user'@'host' to database 'mysql'  

そして、そのデータベースで権限を取得する方法がわかりません。

参照用の私のphpコードは次のとおりです(機密情報は削除されています):

$con=mysqli_connect("IP:port","user","password","database_name");
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
    echo "Succesfully connected";
echo "<br />";
}

$result = mysqli_query($con, "SELECT * FROM OWNERS") or die("Error: ".mysqli_error($con));
while($row = mysqli_fetch_array($result))
{
  echo $row['email'] . " " . $row['type'];
echo "<br />";
}

誰かがこれで私を助けることができますか? たくさんあることはわかっていますが、すべての問題が関連しているようで、どこから修正を始めればよいかわかりません。(XAMPP を使用して php を実行し、MySQL ワークベンチを使用してクエリを実行しています)

4

1 に答える 1

0

mysql はネットワーク内の別のマシンで実行されていると思います。これが機能するかどうかを確認するためにこれを試してください:

CREATE USER 'user'@'IP' IDENTIFIED BY 'your password';
GRANT ALL ON database_name.* TO 'user'@'IP';

ユーザーが既にシステムに存在しているが、IP が異なる場合は、mysql サーバーの IP を使用して再度作成する必要があります。create user および grant ステートメントで IP の代わりに%を試すこともできますが、本番環境では推奨されません。

于 2013-04-05T20:41:17.297 に答える