【问题标题】:mysqli connection php Media Templemysqli连接php媒体寺
【发布时间】:2013-03-18 06:20:30
【问题描述】:

我来自 mysql_select_db 背景,需要使用 mysqli。

我在将 mysqli 连接到我在 Media Temple 的数据库时遇到问题。 我已通过 MT 服务器上的 php myAdmin 连接确认连接信息正确。(以下替换为 000000)。

我的代码:

$mysqli = new mysqli("internal-db.000000.gridserver.com", "db000000", "password", "db000000_dbName");
$result = $mysqli->query("select * from 'users'"); 
$row = $result->fetch_assoc();
echo htmlentities($row['fieldName']);

我收到以下错误:

Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2003): Can't connect to MySQL server on 'internal-db.000000.gridserver.com' (61) 

Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli //this is because of the bad connection

Fatal error: Call to a member function fetch_assoc() on a non-object //this is because of the bad connection

这是 MT 网站上的链接: http://kb.mediatemple.net/questions/4/Why+can%27t+I+connect+to+my+MySQL+database+from+PHP%3F#gs

我在这里缺少什么?感谢阅读。

【问题讨论】:

  • 所以如果您使用 mysql 而不是 mysqli 进行连接 - 它可以工作吗?!
  • 还有:你如何确认设置是正确的——你是否使用 shell 中的 mysqlclient 连接到 mysql 服务器?
  • 您能否通过 ssh 连接到服务器并运行适合您的设置的“mysql --host=localhost --user=myname --password=mypass mydb” - 只是为了确保它可以正常工作,例如他们没有跳过,例如手册中的端口?
  • 接下来是通过 ssh 进行测试。

标签: php mysqli mediatemple


【解决方案1】:

服务器地址有这种格式吗?

internal-db.000000.gridserver.com?

如果您对internal-db.000000.gridserver.com 执行 ping 操作,您会获得 IP 吗?

【讨论】:

  • Ping 一无所获,根据我刚刚发布的编辑,该地址似乎是他们想要的。
  • 您的密码中是否包含" or ' 等特殊字符?只有第一个错误是有趣的,因为其他错误是由于第一个
  • 好像没问题,感叹号不影响php的字符串声明
【解决方案2】:

没有为主机建立连接。如果此脚本与数据库在同一主机上运行,​​则只需使用 localhost 而不是完全限定的主机名。对于用户名或远程访问权限问题,错误消息会有所不同。这看起来更像是网络(防火墙)类型的问题。

【讨论】:

  • 主机展示了一些例子,他们使用子域,所以我想他们打开了防火墙..
  • 如果您不是来自 MT 站点的内部/本地的潜在问题:对于外部连接,请改用 external-db.s00000.gridserver.com 并确保您的 IP 地址已添加到允许的外部列表中IP。点击这里了解详情。
  • 嗯,是的,有趣...@JWC_WDC 你只是尝试过localhost 吗?
  • 是的,我确实尝试过 localhost,接下来我也会尝试外部/IP。
  • finally found (61) 表示:ECONNREFUSED(“连接被拒绝”)。
猜你喜欢
  • 2012-09-22
  • 2012-10-19
  • 2011-04-10
  • 2014-04-12
  • 2018-12-30
  • 2018-03-09
  • 2011-04-21
  • 2023-03-11
  • 1970-01-01
相关资源
最近更新 更多