事情是這樣的。 這樣的代碼能行:php
$servername = "localhost"; $username = "username"; $password = "password"; // 建立鏈接 $conn = new mysqli($servername, $username, $password); // 檢測鏈接 if ($conn->connect_error) { die("鏈接失敗: " . $conn->connect_error); } echo "鏈接成功";
這樣的代碼能行:mysql
$servername = "localhost"; $username = "username"; $password = "password"; $link = mysqli_connect($servername, $username, $password, 'wxjs'); if (!$link) { echo "Error: Unable to connect to MySQL." . PHP_EOL; echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; exit; } echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL; echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL; mysqli_close($link);
輸出:sql
Success: A proper connection to MySQL was made! The my_db database is great. Host information: Localhost via UNIX socket
這樣的代碼不行:socket
$servername = "127.0.0.1"; $username = "username"; $password = "password"; $link = mysqli_connect($servername, $username, $password, 'wxjs'); if (!$link) { echo "Error: Unable to connect to MySQL." . PHP_EOL; echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; exit; } echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL; echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL; mysqli_close($link);
輸出:code
Error: Unable to connect to MySQL. Debugging errno: 2002 Debugging error: Permission denied
得出結論:用IP和用localhost是不同的。orm
我還找到了一個很變態的方法解決 用 IP 不行的,竟然是關掉防火牆……server
$ sudo setenforce 0
MySQL 新手。幼稚了……get