首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP连接失败: SQLSTATE[HY000] [2002]连接被拒绝

PHP连接失败: SQLSTATE[HY000] [2002]连接被拒绝
EN

Stack Overflow用户
提问于 2015-04-01 23:57:50
回答 8查看 402.8K关注 0票数 68

我尝试使用PHP连接来连接MySQL数据库,这是在phpmyadmin。连接没有什么特别之处,只是想看看连接是否成功。我使用MAMP来托管数据库,我尝试使用的连接如下:

代码语言:javascript
复制
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "root";

try {
    $conn = new PDO("mysql:host=$servername;dbname=AppDatabase", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully"; 
}
catch(PDOException $e)
{
    echo "Connection failed: " . $e->getMessage();
}
?>

我一直在使用postman测试连接是否正常,但我一直收到以下错误消息:

连接失败: SQLSTATEHY000连接被拒绝

在我收到以下错误消息之前:

连接失败: SQLSTATEHY000没有这样的文件或目录

这是因为我将servername设置为localhost,通过将其更改为它提供给我的连接被拒绝的IP地址,我不知道出了什么问题。

任何关于这方面的帮助都将不胜感激。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-04-02 05:15:07

我找到了连接不工作的原因,这是因为连接试图连接到端口8888,而它需要连接到端口8889。

代码语言:javascript
复制
$conn = new PDO("mysql:host=$servername;port=8889;dbname=AppDatabase", $username, $password); 

这解决了这个问题,尽管将服务器名更改为localhost仍然会给出错误。

连接失败: SQLSTATEHY000没有这样的文件或目录

但是当为服务器名称输入IP地址时,它会成功连接。

票数 59
EN

Stack Overflow用户

发布于 2018-10-16 17:52:09

在我的例子中,MySQL服务器没有运行。我重新启动了MySQL服务器,问题得到了解决。

代码语言:javascript
复制
//on ubuntu server
sudo /etc/init.d/mysql start

为了避免MySQL停止问题,您可以使用Ubuntu14.04LTS Linux中的"initctl“实用程序来确保服务在出现故障或重启时重新启动。在对data retention purpose8执行此操作之前,请考虑与根卷的快照进行对话(已停止mysql )。您可以使用以下命令来管理带有"initctl“实用程序的mysql服务以及停止和启动操作。

代码语言:javascript
复制
$ sudo initctl stop mysql
$ sudo initctl start mysql

为了验证工作,您可以检查服务的状态并获取进程id (pid),通过杀死mysql进程来模拟故障,并在一段时间后(通常在1分钟内)使用以下命令验证其状态为使用新的进程id运行。

代码语言:javascript
复制
$ sudo initctl status mysql         # get pid
$ sudo kill -9 <pid>                # kill mysql process
$ sudo initctl status mysql         # verify status as running after sometime

注意:在最新的Ubuntu版本中,

取代了initctl

票数 9
EN

Stack Overflow用户

发布于 2019-03-31 17:55:07

使用MAMP,我将host=localhost更改为host=127.0.0.1。但是一个新的问题出现了,“connection

通过将'port' => '8889'放在'Datasources' => [中解决了这个问题

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29395452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档