Laravel 5.8安装错误在database.php第58行:未定义的类常量’MYSQL_ATTR_SSL_CA’

前端之家收集整理的这篇文章主要介绍了Laravel 5.8安装错误在database.php第58行:未定义的类常量’MYSQL_ATTR_SSL_CA’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我尝试安装Laravel 5.8时,它会抛出错误

In database.PHP line 58:

Undefined class constant ‘MysqL_ATTR_SSL_CA’

enter image description here

在此之后,我试图在服务器上运行该应用程序.它有时很好.有时它会抛出同样的错误.我也无法在Artisan上运行任何命令.为什么会这样,以及如何解决这个问题?

解决方法

新的Laravel版本有这个错误.查看config / database.PHP,您将看到如下内容

'MysqL' => [
        'driver' => 'MysqL','host' => env('DB_HOST','127.0.0.1'),'port' => env('DB_PORT','3306'),'database' => env('DB_DATABASE','forge'),'username' => env('DB_USERNAME','password' => env('DB_PASSWORD',''),'unix_socket' => env('DB_SOCKET','charset' => 'utf8mb4','collation' => 'utf8mb4_unicode_ci','prefix' => '','prefix_indexes' => true,'strict' => true,'engine' => null,'options' => array_filter([
             PDO::MysqL_ATTR_SSL_CA => env('MysqL_ATTR_SSL_CA'),]),

安全应用程序有一个环境文件,其中包含特定机器和软件配置的数据,如数据库名称和密码,电子邮件和密码,用于判断它是用于开发还是生产的值等.

Laravel通过全局函数env()将它们加载到常量可访问中.
有一个文件.env包含Laravel中的那些特殊值.所以打开它,在数据库部分的底部,添加您的证书路径值:

DB_CONNECTION=MysqL
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog-db
DB_USERNAME=root
DB_PASSWORD=fakepass
MysqL_ATTR_SSL_CA=relative/or/absolute/path/to/certificate.extension

或者,如果您不打算像我们大多数人那样使用SSL证书进行MysqL连接,那么只需在config / database.PHP中注释:

'MysqL' => [
        'driver' => 'MysqL',//'options' => array_filter([
        //     PDO::MysqL_ATTR_SSL_CA => env('MysqL_ATTR_SSL_CA'),//]),

就像目前在Laravel / Laravel大师:https://github.com/laravel/laravel/blob/master/config/database.php

猜你在找的Laravel相关文章