【问题标题】:Compatibility of PHP 7.4.21 with MySQL 8.xPHP 7.4.21 与 MySQL 8.x 的兼容性
【发布时间】:2021-07-09 21:13:23
【问题描述】:

我计划将我的 MySQL 升级到 8.x 版,然后找到这篇文章:https://www.ma-no.org/en/networking/databases/mysql-8-0-is-now-fully-supported-in-php-7-4

根据其描述,auth_plugin_caching_sha2_password 在 PHP 7.4.21 中受支持,我刚刚检查了我的实例并确认了这一点。

但是,mysqli.so 似乎还有另一个问题。我不知道它是为了什么。但似乎我需要修改 php.ini 以使其工作。这是真的吗?

那么在我升级之前,我需要根据上面的文章修改php.ini吗?

【问题讨论】:

  • 我认为 MySQLi 扩展是弃用的过程。另外,我看到那里有一个“nd_mysqli”扩展名,它实际上取代了“mysqli”。
  • 作为 mysqli 专家,我不知道 Janeth 想说什么。 socket 的默认值可以留空,mysqli 将使用内置的默认值。我会说忽略那张纸条。
  • @BrokenArrow Mysqli 不会很快被弃用。不幸的是,仍有太多人使用它。 nd_mysqli 是一个奇怪的扩展,仅在 cPanel 中可用。它不是原生 PHP 扩展。此外,OP 没有提到他们正在使用 mysqli。
  • @Dharman 我以为 ND 代表 Native Driver,对不起,我的错。确实,MySQLi 不会很快消亡,但这不是因为标准或合规性,而是因为兼容性,正如您已经提到的。

标签: php mysql upgrade mysql-8.0


【解决方案1】:

我不知道 PHP 和 MySQL 8 有任何问题。身份验证方法的问题已在 PHP 7.4 中修复(因为 7.4.4 应该可以正常工作)。

这两个扩展都可用于与 MySQL 8 通信,但 PDO 是比 mysqli 更好的选择。但是,mysqli 并没有消失,您仍然可以使用它。

PHP 有一个名为mysqlnd 的扩展名,它代表 MySQL 原生驱动程序。 mysqli 和 PDO_mysql 都使用此驱动程序。就是这里,缺少认证方式的bug所在。

当您升级到 MySQL 8 后,您应该能够继续使用 PHP 7.4 而不会出现任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 2020-10-29
    • 2017-02-20
    • 2018-05-07
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多