【问题标题】:"Lost connection to MySQL server" when trying to connect to remote MySQL server尝试连接到远程 MySQL 服务器时出现“与 MySQL 服务器的连接丢失”
【发布时间】:2010-12-21 13:54:01
【问题描述】:

我正在使用 Zend Framework 开发我的应用程序,并尝试连接到我局域网中的远程 MySQL 数据库。

Zend中的数据库连接设置如下:

[一般的] db.adapter = PDO_MYSQL db.params.host = 192.168.1.2 db.params.port = 3306

[现场:一般] db.params.username = 根 db.params.password = ** db.params.dbname = djudd

[开发:一般] db.params.username = 根 db.params.password = ** db.params.dbname = 恒星引擎

我收到以下错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 111' in /usr/share/php/Zend/Db/Adapter/Pdo/Abstract.php:129 Stack trace: #0 /usr/share/php/Zend/Db/Adapter/Pdo/Abstract.php(129): PDO->__construct('mysql:host=192....', 'root', 'password', Array) #1 /usr/share/php/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect() #2 /usr/share/php/Zend/Db/Adapter/Abstract.php(448): Zend_Db_Adapter_Pdo_Mysql->_connect() #3 /usr/share/php/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('DESCRIBEbny_c...', Array) #4 /usr/share/php/Zend/Db/Adapter/Pdo/Mysql.php(156): Zend_Db_Adapter_Pdo_Abstract->query('DESCRIBE bny_c...') #5 /usr/share/php/Zend/Db/Table/Abstract.php(823): Zend_Db_Adapter_Pdo_Mysql->describeTable('bny_core_module...', NULL) #6 /usr/share/php/Zend/Db/Table/Abstract.php(866): Zend_Db_Table_Abstract->_setupMetadata() #7 /usr/share/php/Zend/Db/Table/Abstract. in /usr/share/php/Zend/Db/Adapter/Pdo/Abstract.php on line 144

请帮我解决这个问题。

【问题讨论】:

  • 我希望您实际上并没有使用root 作为您的数据库凭据...如果有任何类型的攻击(文件系统或 sql 注入),这可能会非常危险...
  • 可能会尝试使用远程主机 IP(或名称)而不是本地默认网关 IP 192.168.1.2
  • 可能和zend框架无关,只需要一个简单的mysql_connect()函数测试一下。错误可能与您的 mysql 服务器或网络配置有关。

标签: php mysql zend-framework


【解决方案1】:

上次我遇到这种类型的错误时,我不得不将我的主机从:127.0.0.1 更改为 'localhost',然后它就可以正常工作了。

【讨论】:

    【解决方案2】:
    【解决方案3】:

    我遇到了同样的问题,为了解决这个问题,我将隧道配置中的远程端口从'localhost:3306' to '127.0.0.1:3306'.更改为

    在目标机器上,localhost 解析为 ::1 但 MariaDB 没有监听 IPv6 请求...

    【讨论】:

      【解决方案4】:

      此错误表示您连接到错误的服务器或防火墙阻止了它或服务器未运行。

      您需要联系服务器管理员以确认正确的详细信息。

      对于大多数服务器,您将使用 127.0.0.1,但有些使用 localhost,而其他服务器(如 media Temple)则需要完整的域名 - 例如 internal-db.s421234.gridserver.com

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-04-20
        • 1970-01-01
        • 2014-09-29
        • 1970-01-01
        • 1970-01-01
        • 2017-08-13
        • 1970-01-01
        相关资源
        最近更新 更多