Mysql
為什麼我不能通過瀏覽器連接到mysql,而是通過終端用php連接?
我想用 PHP 在瀏覽器中顯示一個 MySQL 表並創建文件
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 文件可以在這裡看到。
一段時間後,我設法找到了一個解決問題的方法:
關於通過瀏覽器使用 PHP 訪問 MariaDB 數據庫的 stackoverflow 問題中的評論指出“較新版本的 MariaDB / MySQL 不允許您通過 PHP 使用 root 使用者。”當使用與 root 不同的使用者時,我可以確實按預期連接到 MySQL 數據庫。
問題必須與 SELinux 相關,啟用以下布爾值。
setsebool -P httpd_can_network_connect_db=1