ブラウザを介してmysqlに接続できないが、端末を介してphpに接続できないのはなぜですか?

ブラウザを介してmysqlに接続できないが、端末を介してphpに接続できないのはなぜですか?

私はブラウザにMySQLテーブルを表示し、PHPを使用してファイルを生成したいと思います。demo-db.php

<!DOCTYPE html>
<html>
<body>

<?php
$servername = "localhost";
$username = "fabian";
$password = "XXX";
$dbname = "music";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
else echo "everything fine";

mysqli_close($conn);
?>

</body>
</html>

端末でファイルを実行すると、php -f demo-db.php次の出力が表示されます。

<!DOCTYPE html>
<html>
<body>

everything fine
</body>
</html>

残念ながらhttp://localhost//demo-db.php、次に進むと、次のアクセス拒否エラーが発生します。

Connection failed: Access denied for user 'fabian'@'localhost'

助けを得るためにオンラインで検索しようとしましたが、成功しませんでした。マイコンピュータのphpinfo.phpファイルを見ることができますここ

答え1

しばらくして、私は問題の解決策を見つけました。

コメントする電卓の質問PHPを使用してブラウザを介してMariaDBデータベースにアクセスすることに関して、「最新バージョンのMariaDB / MySQLでは、PHPを介してrootユーザーを使用することはできません」ルート以外のユーザーを使用すると、実際に期待どおりにMySQLデータベースに接続できます。 。

答え2

問題はSELinuxにあるはずです。次のブール値を有効にします。

setsebool -P httpd_can_network_connect_db=1

関連情報