首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLSTATE[HY000] [2002年]行动超时

SQLSTATE[HY000] [2002年]行动超时
EN

Stack Overflow用户
提问于 2017-04-14 07:24:47
回答 3查看 38K关注 0票数 5

我正在创建一个pdo数据连接。这些连接在本地主机上运行良好。但是,当我连接到我的远程数据库,并使用我以前使用过的完全相同的凭据时,我会得到一个空页,没有错误消息,只有一个空页。

在以前的项目中使用mysqli完成的凭证是用pdo完成的。

我尝试过两种类型的pdo连接代码,它们都没有工作。

第一项:

代码语言:javascript
复制
$databaseHost = 'x.xxx.xxx.xx';
$databaseName = 'xxxxxxxxx';
$databaseUsername = 'xxxxxxx';
$databasePassword = 'xxxxxx';
$charset = 'utf8';

try {

    $dsn = "mysql:host=$databaseHost;dbname=$databaseName;charset=$charset";


} catch(PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

$opt = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
        ];

$pdo = new PDO($dsn, $databaseUsername, $databasePassword, $opt);

第二项:

代码语言:javascript
复制
$databaseHost = 'x.xxx.xxx.xx';
$databaseName = 'xxxxxxxxx';
$databaseUsername = 'xxxxxxx';
$databasePassword = 'xxxxxx';

$opt = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
        ];

try {

    $pdo = new PDO("mysql:host={$databaseHost};dbname={$databaseName}", $databaseUsername, $databasePassword, $opt);

    } catch(PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
  }

尽管这两个连接都在本地主机上工作,但我尝试在浏览器中本地加载这个连接页,但是第一个选项给了我这个错误:

致命错误: /Applications/MAMP/htdocs/ijdb_pdo/config.php:24堆栈跟踪中的SQLSTATEHY000操作超时:#0 /Applications/MAMP/htdocs/ijdb_pdo/config.php(24):pdo->_PDOException(‘mysql:host=83.1.’,‘u 1164707_sohail’,‘sohail 123’,PDOException #1 {main}抛入//Applications/MAMP/htdocs/ijdb_pdo/config.php(24):/htdocs/ijdb_pdo/config.php

第二个选项给了我以下错误:

againtestConnection失败: SQLSTATEHY000操作超时

我的代码搞砸了什么?

然后我试着通过终端连接:

代码语言:javascript
复制
MacBook-Pro-3:/ sohail$ /Applications/MAMP/Library/bin/mysql -h "xx.xxx.xxx.xx" -u "xxxxxx" "-pxxxxxxx" "xxxxxxx";

并得到以下错误:

警告:在命令行界面上使用密码可能是不安全的。错误2003 (HY000):无法连接到“xx.xxx.xxx.xx”(60) MacBook 3:/sohare$上的MySQL服务器

我想我的远程机器上没有终端访问权限,所以我不能显示全局变量,比如'PORT';cmd -thanks

EN

回答 3

Stack Overflow用户

发布于 2017-04-14 07:38:48

关于你的第二个错误,引用这两个答案。

PDOException SQLSTATE[HY000] [2002] Connection timed out on my local computer

'PDOExcpetion' with message 'SQLSTATE[HY000] [2002] No route to host

要么您需要启用对远程数据库的访问,要么您的网络IP问题时有发生变化。请确认这两件事。我希望这能帮到你。

票数 2
EN

Stack Overflow用户

发布于 2021-11-15 08:35:12

在我的示例中,数据库连接凭据以某种方式被更改。

票数 0
EN

Stack Overflow用户

发布于 2022-03-03 07:32:10

我在上遇到了这个问题。我清除了配置缓存,然后运行良好。

代码语言:javascript
复制
php artisan config:cache
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43407112

复制
相关文章

相似问题

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