簡體   English   中英

無法連接到phpMyAdmin MySQL數據庫

[英]Trouble Connection to phpMyAdmin MySQL database

我是php的新手,每當嘗試加載需要訪問在phpMyAdmin上設置的數據庫的php頁面時,都會收到錯誤消息

這是錯誤:

數據庫連接失敗:無法通過套接字'/tmp/mysql.sock'連接到本地MySQL服務器(46)(2002)

我用於連接的代碼是這樣的:

<?php
define("DB_SERVER", "localhost");
define("DB_USER", "xxxx");
define("DB_PASS", "xxxx");
define("DB_NAME", "tester");

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);

// Test if connection occurred.
if(mysqli_connect_errno()) {
    die("Database connection failed: " .
        mysqli_connect_error() .
        " (" . mysqli_connect_errno() . ")"
    );
}
?>

我按照托管我的網站的站點上的指示在服務器上設置了phpMyAdmin,因此,我敢肯定我正確地做到了。

通過使用WAMP ,我已經能夠使數據庫在我的計算機上正常工作,但這是我第一次真正嘗試使所有內容都可以在線工作,所以我不知道這是否是一個愚蠢的錯誤,或者更大的東西。

我也不知道什么是套接字,所以我不確定如何解決這個問題。

謝謝你的幫助!!

這意味着您沒有權限訪問phpMyAdmin或該套接字不存在。 嘗試重新安裝phpMyAdmin。

您必須找到一種連接到MySQL實例的方法。 有兩種方法,TCP(即使網絡地址為127.0.0.1,也要聯網)和套接字(/var/run/mysqld/mysql.sock之類的文件)。 通常,將MySQL配置為開箱即用,可以同時監聽兩者,並且通常兩者之間幾乎沒有區別。 在創建或編輯與連接類型匹配的權限時,您必須小心,用戶bob @ localhost與用戶bob@127.0.0.1不同。 我傾向於使用套接字,這也是您的腳本默認嘗試執行的操作。 您可以告訴它通過TCP連接,但是告訴它正確的套接字路徑也很容易。

無論如何,對我來說最快的解決方法是嘗試使用命令行工具。 如果可以在命令行上執行mysql -u root -p並得到MYSQL> shell提示符,請鍵入“ STATUS”並查找“ Connection”行,該行可能會通過UNIX套接字讀取Localhost; 再往下看,您可能會看到類似“ UNIX套接字:/var/run/mysqld/mysql.sock”的行,在這種情況下,您只需告訴您的PHP腳本或全局PHP配置有關套接字的路徑,因為現在它正在查找/tmp/mysql.sock不存在。

您也可以在登錄phpMyAdmin時看到此消息,它應該在頁面的右側顯示一些“數據庫服務器”信息-在此處查找“服務器”行,其中可能顯示類似“ phpMyAdmin演示-MySQL( 192.168.30.23通過TCP / IP”(明確表明您正在通過TCP連接)。

無論如何,無論您使用哪種方法查找套接字的路徑或決定使用TCP網絡,請參見PHP手冊頁以獲取有關使用該方法進行連接的信息。 您也可以只在php.ini中為套接字設置全局路徑(這是我建議您執行的操作),那么您不必在每個腳本中手動設置它,因為它只使用php.ini設置為默認值。 您可能需要設置pdo_mysql.default_socket,mysql.default_socket和mysqli.default_socket的每個值(盡管在代碼中您僅使用mysqli,所以從技術上講,您只需要設置最后一個值...但是為什么要冒險將諸如“為什么mysqli會起作用但pdo會失敗?”之類的問題使您的未來自我困惑-只需立即設置它們,不必擔心)。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM