mysql - 使用 Laravel 5 设置 Mariadb

标签 mysql laravel pdo laravel-5 mariadb

我一直在尝试使用 MariaDB 将我的数据库连接设置为 Laravel 但没有成功,执行我的应用程序返回此错误:

PDOException in Connector.php line 47:
SQLSTATE[HY000] [1049] Unknown database 'data'

这是我的 Database.php 文件:

'default' => 'mysql',

'connections' => [

        'sqlite' => [
            'driver'   => 'sqlite',
            'database' => storage_path().'/database.sqlite',
            'prefix'   => '',
        ],

        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

        'pgsql' => [
            'driver'   => 'pgsql',
            'host'     => env('DB_HOST', 'localhost'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset'  => 'utf8',
            'prefix'   => '',
            'schema'   => 'public',
        ],

        'sqlsrv' => [
            'driver'   => 'sqlsrv',
            'host'     => env('DB_HOST', 'localhost'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'prefix'   => '',
        ],

    ],

这是我的 .env 文件:

APP_ENV=local
APP_DEBUG=true
APP_KEY=ZP9Ao5RJhZjS7EqJuaYRltSIC7HTL4vp

DB_HOST=localhost
DB_DATABASE=data
DB_USERNAME=root
DB_PASSWORD=secret

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null

这个错误转储:

in Connector.php line 47
at PDO->__construct('mysql:host=localhost;dbname=data', 'root', 'secret', array('0', '2', '0', false, '0')) in Connector.php line 47
at Connector->createConnection('mysql:host=localhost;dbname=data', array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'data', 'username' => 'root', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql'), array('0', '2', '0', false, '0')) in MySqlConnector.php line 20
at MySqlConnector->connect(array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'data', 'username' => 'root', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql')) in ConnectionFactory.php line 58
at ConnectionFactory->createSingleConnection(array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'data', 'username' => 'root', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql')) in ConnectionFactory.php line 47
at ConnectionFactory->make(array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'data', 'username' => 'root', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false), 'mysql') in DatabaseManager.php line 177
at DatabaseManager->makeConnection('mysql') in DatabaseManager.php line 65
at DatabaseManager->connection(null) in Model.php line 3134
at Model::resolveConnection(null) in Model.php line 3100
at Model->getConnection() in Model.php line 1895
at Model->newBaseQueryBuilder() in Model.php line 1836
at Model->newQueryWithoutScopes() in Model.php line 1810
at Model->newQuery() in Model.php line 3321
at Model->__call('get', array()) in SongsController.php line 20
at Song->get() in SongsController.php line 20
at SongsController->index()
at call_user_func_array(array(object(SongsController), 'index'), array()) in Controller.php line 246
at Controller->callAction('index', array()) in ControllerDispatcher.php line 162
at ControllerDispatcher->call(object(SongsController), object(Route), 'index') in ControllerDispatcher.php line 107
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 108
at ControllerDispatcher->callWithinStack(object(SongsController), object(Route), object(Request), 'index') in ControllerDispatcher.php line 67
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\SongsController', 'index') in Route.php line 198
at Route->runWithCustomDispatcher(object(Request)) in Route.php line 131
at Route->run(object(Request)) in Router.php line 691
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Router.php line 693
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 660
at Router->dispatchToRoute(object(Request)) in Router.php line 618
at Router->dispatch(object(Request)) in Kernel.php line 210
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 43
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 55
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 61
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 40
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Kernel.php line 111
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 84
at Kernel->handle(object(Request)) in index.php line 53

我认为这与 Mysql 和 MariaDB 之间的某种冲突有关。如果任何已经尝试将 MariaDB 与 Laravel 结合使用的人可以提供示例或经验,那将会很有帮助。 奇怪的是我已经能够使用“php artisan:migrate”执行我的迁移文件,并且数据库确实存在并带有适当的表。迁移脚本如何连接到数据库和 Controller 失败?我做错了什么?

最佳答案

我终于解决了这个问题,因为我使用的是 Homestead,一个 laravel vagrant box 来执行我的网站,该网站实际上试图连接到位于 Homestead 内部的内部 mysql,而我永远无法访问 MariaDB。我仍然不知道如何在 Homestead 中使用 MariaDB,但至少我现在缩小了搜索范围。

关于mysql - 使用 Laravel 5 设置 Mariadb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29106285/

相关文章:

mysql - 对大于整数的结果使用 .where 条件

mysql - 从链接表中获取元素

mysql - SQL查询条件,用于根据条件获取用户的答案

php - 查询列在另一个表中的位置 - laravel

php - 如何在使用nginx的centos服务器中清除laravel应用程序的缓存

mysql - MongoDB:像 MySql 这样的 url 中的 ID,如何实现?

PHP PDO : How to insert multiple rows?

mysql - mysql语句中insert value和insert values有什么区别?

php 无法连接到 sql server 2008(使用 pdo dblib)

laravel - 如何在 Laravel 中模拟没有连接数据库的模型