2016-04-27 100 views
2

我是laravel中的新手也在stackoverflow中,我試圖在我的laravel應用程序中配置數據庫。但它不起作用,並總是向我顯示錯誤。這裏是我的database.php文件。Laravel沒有連接mysql數據庫

database.php中

<?php 

return [ 

    /* 
    |-------------------------------------------------------------------------- 
    | PDO Fetch Style 
    |-------------------------------------------------------------------------- 
    | 
    | By default, database results will be returned as instances of the PHP 
    | stdClass object; however, you may desire to retrieve records in an 
    | array format for simplicity. Here you can tweak the fetch style. 
    | 
    */ 

    'fetch' => PDO::FETCH_CLASS, 

    /* 
    |-------------------------------------------------------------------------- 
    | Default Database Connection Name 
    |-------------------------------------------------------------------------- 
    | 
    | Here you may specify which of the database connections below you wish 
    | to use as your default connection for all database work. Of course 
    | you may use many connections at once using the Database library. 
    | 
    */ 

    'default' => 'mysql', 

    /* 
    |-------------------------------------------------------------------------- 
    | Database Connections 
    |-------------------------------------------------------------------------- 
    | 
    | Here are each of the database connections setup for your application. 
    | Of course, examples of configuring each database platform that is 
    | supported by Laravel is shown below to make development simple. 
    | 
    | 
    | All database work in Laravel is done through the PHP PDO facilities 
    | so make sure you have the driver for your particular database of 
    | choice installed on your machine before you begin development. 
    | 
    */ 

    'connections' => [ 

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

     'mysql' => [ 
      'driver' => 'mysql', 
      'host'  => 'localhost', 
      'database' => 'horsi', 
      'username' => 'root', 
      'password' => '', 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => '', 
      'strict' => false, 
     ], 

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

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

    ], 

    /* 
    |-------------------------------------------------------------------------- 
    | Migration Repository Table 
    |-------------------------------------------------------------------------- 
    | 
    | This table keeps track of all the migrations that have already run for 
    | your application. Using this information, we can determine which of 
    | the migrations on disk haven't actually been run in the database. 
    | 
    */ 

    'migrations' => 'migrations', 

    /* 
    |-------------------------------------------------------------------------- 
    | Redis Databases 
    |-------------------------------------------------------------------------- 
    | 
    | Redis is an open source, fast, and advanced key-value store that also 
    | provides a richer set of commands than a typical key-value systems 
    | such as APC or Memcached. Laravel makes it easy to dig right in. 
    | 
    */ 

    'redis' => [ 

     'cluster' => false, 

     'default' => [ 
      'host'  => '127.0.0.1', 
      'port'  => 6379, 
      'database' => 0, 
     ], 

    ], 

]; 

我還附上我的.ENV文件

APP_ENV=local 
APP_DEBUG=true 
APP_KEY=SomeRandomString 

DB_HOST=localhost 
DB_DATABASE=horsi 
DB_USERNAME=root 
DB_PASSWORD= 

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 

我也試圖配置我的數據庫就像

'host'  => env('DB_HOST', 'localhost'), 
      'database' => env('DB_DATABASE', 'horsi'), 
      'username' => env('DB_USERNAME', 'root'), 
      'password' => env('DB_PASSWORD', ''), 

但它不是工作,任何人都可以幫助我獲得解決方案

錯誤:空到位的用戶名和poassword

enter image description here

+1

它顯示什麼錯誤?例如,如果您嘗試使用'localhost'作爲主機連接到數據庫,而使用'root'連接到沒有MySQL Workbench密碼的數據庫,您能夠連接嗎? –

+0

請不要使用[mysql_'數據庫擴展](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php),它 已被棄用(永遠不會在PHP7中) 特別是,如果你只是學習PHP,花費你的精力學習'PDO'數據庫擴展。 [從這裏開始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

+0

壞主意。不要使用mysql_。你在內部架構中使用框架。它使用PDO。請檢查我的答案。 – Dinar

回答

1

嘗試添加此行

'default' => env('DB_DEFAULT', 'mysql') 

,而不是地方的

'default' => 'mysql' 

並在.env文件中設置

+0

而在這種情況下還需要添加到'.env 'file' DB_DEFAULT = mysql' – Dinar

+0

是的,我們需要.env文件,對於這種情況 –

0

您可以使用默認的數據庫爲'default' => 'mysql'

.env CONFIGS在您的配置文件會爲pgsql

所以,如果你要使用MySQL,設置這個

'host'  => env('DB_HOST', 'localhost'), 
'database' => env('DB_DATABASE', 'horsi'), 
'username' => env('DB_USERNAME', 'root'), 
'password' => env('DB_PASSWORD', ''), 

mysql部分在config.php