事情是这样的。 这样的代码能行: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