【问题标题】:pdo mysql driver in RHEL 7 is not workingRHEL 7 中的 pdo mysql 驱动程序不起作用
【发布时间】:2019-09-17 10:45:32
【问题描述】:

我正在尝试运行我的 Laravel 5.7 应用,但在尝试在我的页面中运行查询时总是会收到错误 Could not find driver

这是我的 .env 代码的一部分:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306

无论如何,我们不使用 mysql,而是使用 MariaDB。我可以确认 mariadb 运行没有任何问题,因为如果我在终端中运行 mysql -u root -p,我可以连接到我的 MariaDB。这是我成功登录 MariaDB 后的欢迎信息。

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 44
Server version: 10.2.8-MariaDB MariaDB Server

运行 phpinfo() 将返回:

PDO support enabled
PDO drivers pgsql, sqlite

MySQL driver for PDO    George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
MySQLi  Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel
MySQLnd Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlüter

但我可以确认我的/opt/rh/rh-php71/root/usr/lib64/php/modules 文件夹包含pdo_mysql.sopdo.somysqli.somysqlnd.so

我的/etc/opt/rh/rh-php71/php.d 文件夹也包含30-pdo_mysql.ini,其中仅包含一行extension=pdo_mysql.so

那么为什么我的 pdo mysql 没有运行呢?

【问题讨论】:

  • phpinfo()PDO drivers pgsql, sqlite 行实际上并未将 mysql 列为驱动程序。也许您必须重新启动 apache 或 nginx(或您正在使用的任何东西)?
  • 您可能会检查 selinux 没有阻止驱动程序或 ini 文件。
  • @ourmandave 是的,我很困惑为什么 PDO 驱动程序没有列出 mysql。我已经多次重启apache。如何检查 selinux 没有阻止驱动程序或 ini 文件?

标签: mysql laravel pdo mariadb rhel


【解决方案1】:

可以从yum安装php mysql连接包

首先安装#yum install epel-release -y 然后

yum install php-mysqlnd -y

【讨论】:

    【解决方案2】:

    原来我需要重新启动我的 php-fpm。在谷歌搜索和谷歌搜索中,我仍然找不到我的php-fpm服务的确切名称,所以我做了sudo find | grep fpm,发现我的php-fpm服务名称是rh-php71-php-fpm

    所以我运行sudo service rh-php71-php-fpm restartsudo systemctl restart httpd,现在 mysql 列在 PDO 驱动程序下,我可以成功运行我的应用程序。

    说真的,为什么不同版本的 Linux 对同一事物有不同的名称?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      • 2017-04-30
      • 2010-09-27
      • 2018-03-08
      • 2016-12-14
      • 1970-01-01
      • 2016-03-26
      相关资源
      最近更新 更多