Php MySQL错误mysqli::_construct():(HY000/2002):连接被拒绝
我正在尝试运行包含MySQL连接的PHP脚本,当我运行命令时,终端中出现以下错误:Php MySQL错误mysqli::_construct():(HY000/2002):连接被拒绝,php,mysql,mysqli,pdo,Php,Mysql,Mysqli,Pdo,我正在尝试运行包含MySQL连接的PHP脚本,当我运行命令时,终端中出现以下错误: 'Warning: mysqli::__construct(): (HY000/2002): Connection refused' 即使使用PDO,我也会得到错误: 'Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in ...' 我在MacOSX上运行这个脚本,我将MAMP作为APAC
'Warning: mysqli::__construct(): (HY000/2002): Connection refused'
即使使用PDO,我也会得到错误:
'Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in ...'
我在MacOSX上运行这个脚本,我将MAMP作为APACHE/MySQL本地服务器
我用于运行脚本的命令是:
'php main.php'
带有PDO的“main.php”文件的内容是:
$db = new PDO('mysql:host=localhost;dbname=test',root,root);
使用mysqli连接器:
$db = new mysqli("localhost", "test", "root", "root");
我尝试使用“127.0.0.1”而不是“localhost”,但在这两种情况下都出现了相同的错误 首先,使用
localhost
作为域名是非常必要的。它将不解析为127.0.0.1
其次,即使使用127.0.0.1
也可能无法在具有多个接口或特殊路由规则的服务器中工作。运行mysqlcheck--help
并获取“主机”字段底部显示的IP地址。例如:
port 3306
host 192.168.1.23
使用MySQL识别的IP和端口:
$db = new mysqli("192.168.1.23:3306", "test", "root", "root");
您可能的解决方案:您是否能够使用shell或其他客户端连接到MySql?是的,当然,我能够使用shell访问MySql,我测试了它,问题是当我尝试使用php命令运行脚本时,您能否分享关于“它将无法解决”语句的更多详细信息?我认为文档不一致,因为使用了
localhost
,也不一致……此外,您提供的链接显示成功启动了localhost
和127.0.0.1
的MySQL连接,正如我在链接“PHP中不受支持”(not supported in PHP)中所述,PHP文档本身明确提到的(第二段):“主机名localhost有一个特殊的含义。它与Unix域套接字的使用有关。不可能使用主机名localhost打开TCP/IP连接,而必须使用127.0.0.1。”是的,如文中所述:“不可能打开TCP/IP连接”-使用套接字可以很好地工作。此外,使用套接字会更快,因为您可以跳过网络开销(有关此信息,请参阅)