【问题标题】:CakePHP 3 is NOT able to connect to the database due to a missing PHP extension由于缺少 PHP 扩展,CakePHP 3 无法连接到数据库
【发布时间】:2015-06-06 20:20:03
【问题描述】:

我正在尝试使用 WT-NMP 安装 cakePHP 3.0.0,但我收到了以下消息:

CakePHP 无法连接到数据库。

数据库驱动 Cake\Database\Driver\Mysql 无法使用,原因是 缺少 PHP 扩展或未满足的依赖项

我的 php.ini 有这个:

extension = php_bz2.dll
extension = php_curl.dll
extension = php_gd2.dll
extension = php_imap.dll
extension = php_mbstring.dll
extension = php_exif.dll
extension = php_mysql.dll
extension = php_mysqli.dll
extension = php_pdo_mysql.dll
extension = php_pdo.dll
extension = php_soap.dll
extension = php_sockets.dll
extension = php_sqlite3.dll
extension = php_openssl.dll
extension = php_fileinfo.dll
extension = php_intl.dll

app.php 有这个

    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'localhost',
        /**
         * CakePHP will use the default DB port based on the driver selected
         * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
         * the following line and set the port accordingly
         */
        'port' => '3306',
        'username' => 'root',
        'password' => '',
        'database' => 'test',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'cacheMetadata' => true,

我错过了什么?或者这是 cakePHP 3.0 错误?或与 WT-NMP 有关的任何事情。 我被困了一整天。

【问题讨论】:

    标签: mysql cakephp


    【解决方案1】:

    幸运地解决了这个问题!:

    extension = php_intl.dll
    extension = php_pdo_mysql.dll
    intl.default_locale = en_utf8
    intl.error_level = E_WARNING
    

    【讨论】:

    • 请详细说明。
    • 更多解释会更好。
    • 特别是 extension = php_pdo_mysql.dll 为我做了。
    【解决方案2】:

    安装modules for MySQL database connections 为我解决了这个问题:

    #Install the package
    sudo apt-get install php5-mysql
    #Restart Apache
    sudo service apache2 restart
    

    来源:http://guru4cakephp.blogspot.nl/2015/04/install-cakephp-3-on-ubuntu.html

    包裹详情:https://packages.debian.org/sid/php5-mysql

    【讨论】:

      【解决方案3】:

      试试这个:

      对于 PHP 7.0

      sudo apt-get install php7.0-mysql
      

      对于 PHP 5:

      sudo apt-get install php5-mysql
      

      【讨论】:

      • 在 php7.3 上为我工作 sudo apt-get install php7.3-mysql
      【解决方案4】:

      错误消息是因为extension = php_pdo_mysql.dll 未在php.ini 中安装和启用。如果你没有启用php_intl.dll,你会在检查数据库连接之前得到一个错误。

      您的php.ini 表示您已启用php_pdo_mysql.dll,但可能需要重新启动CakePHP server bin/cake server

      【讨论】:

        【解决方案5】:

        不要仅仅依赖于 php.ini 的读取。只需检查您是否安装了 php[v]-mysql 扩展。您可以检查 php_mysql.dll 是否存在于基于 Windows 的服务器的 php 扩展目录(很可能是<path to your php installation>/ext)中。在linux下可以使用以下命令检查是否安装。

        yum list installed | grep php
        

        它会列出所有安装的 php 扩展。

        【讨论】:

          猜你喜欢
          • 2019-03-26
          • 2017-05-04
          • 2014-02-20
          • 1970-01-01
          • 2018-05-15
          • 1970-01-01
          • 2014-03-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多