【问题标题】:Warning: Cannot connect to database (connecting to 3.22, 3.23 & 4.0 is not supported) SQLSTATE[HY000] [2054]警告:无法连接到数据库(不支持连接到 3.22、3.23 和 4.0)SQLSTATE[HY000] [2054]
【发布时间】:2016-07-11 17:39:40
【问题描述】:

昨天在编码的时候,突然出现以下错误消息:

警告: PDO::__construct():不支持连接到 3.22、3.23 和 4.0。服务器是 3.23.58-登录 /classes/DB.php 第 18 行 SQLSTATE[HY000] [2054] 不支持连接到 3.22、3.23 和 4.0 服务器

我的 DB.php 的第 18 行:

$this->_pdo = new PDO(
    'mysql:host='.config::get('mysql/host').
    ';dbname='.config::get('mysql/db'), 
    config::get('mysql/username'), 
    config::get('mysql/password')
);

所以基本上 - 如果我做对了 - 警告是说我的 mysql 数据库已过时。根本没有意义,因为它以前与 PDO 一起使用,而且我没有更改 DB.php 或 Init.php 中的任何内容。

  • 服务器版本: 4.1.22-log
  • MySQL-客户端版本: 5.1.61
  • phpMyAdmin: 2.11.11.3
  • php-版本: 5.6.12

另外,我检查了 domainfactory,它清楚地显示我的 php 版本是 5.6.12 而我的 MySQL 版本是 5.1.16

所以我觉得我的虚拟主机有问题,但我决定先在这里问。我的设置有什么问题吗?

【问题讨论】:

  • 那么你的mysql服务器版本到底是什么? 4.1.22-log 还是 5.1.16?
  • 有什么理由不升级你的 MySQL 服务器吗?您运行的版本非常旧,并且存在大量漏洞。
  • 我不是 100% 确定 @YourCommonSense 我从我的 phpmyadmin 仪表板复制了这个。但我相信它在 domainfactory 中说的是 5.1.61。
  • 我自己在 domainFactory 托管,他们为我提供了三个不同的 MySQL 版本,具体取决于我连接的主机名: MySQL 3.23.58 (host mysql.<mydomain>); 4.1.22(主机mysql4.<mydomain>)和5.6.19(主机mysql5.<mydomain>)。我是从客户的 Web 界面获得的(不确定它的英文名称,在德国是 "Kundenmenue")。你确定你有 MySQL 5.1 吗?也许您只是使用了错误的主机名。
  • 我给他们打了电话,他们说他们会修好它,所以他们照做了。他们没有告诉我到底出了什么问题,但我猜这与同一天的短暂停机时间有关。

标签: php mysql pdo


【解决方案1】:

这个错误说明使用了太旧的MySql版本。

DomainFactory 用户经常会遇到错误,在尝试连接到 127.0.0.1 时

如果您使用的是 Domainfactory 确保连接到“mysql5.[yourdomain].[yourtld]”

【讨论】:

    猜你喜欢
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多