2015-02-07 143 views
3

我在OSX主機上設置了homestead 2.0並使用Sequel Pro。Laravel; 「SQLSTATE [HY000] [2002]連接被拒絕」

我可以做遷移並確認數據是在Sequel Pro中遷移的,所以它看起來沒有關於數據庫連接的問題。

但是,一旦我嘗試從Laravel 4.2應用程序獲取數據,它將無法檢索數據並出現以下錯誤。

PDOException (2002) 
SQLSTATE[HY000] [2002] Connection refused 

這是我的mysql配置。

'mysql' => array(
      'driver' => 'mysql', 
      'host'  => '127.0.0.1', 
      'port'  => '33060', 
      'database' => 'homestead', 
      'username' => 'homestead', 
      'password' => 'secret', 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => '' 

續集專業設置同上,

Name: 127.0.0.1  
Host: 127.0.0.1 
Username: homestead 
Password: secret 
Database:  
Port: 33060 

我試圖改變主機名稱爲「本地主機」,宅基地和破壞,但沒有工作。 爲什麼?任何建議都有幫助。

+0

MySQL的端口通常是'3306',而不是'33060'。不過,您可能會以不同的方式設置您的系統。仔細檢查一下。 – 2015-02-07 18:18:04

+0

'33060'對於續集是正確的,因爲這是宅基地虛擬機轉發到主機的端口。對於你的App,你需要'3306',因爲它在宅基地虛擬機內部運行。 – cgross 2015-02-07 20:20:28

+0

將續集更改爲「33060」和宅基地端口「3306」,但沒有工作。 – Hanimar 2015-02-08 01:32:03

回答

9

我有完全相同的問題,我不知道爲什麼會發生這種情況。 但是改變

'host'  => '127.0.0.1', 

'host'  => 'localhost', 

爲我工作。總是比我們期望的簡單!

+0

這是因爲localhost可以是127.0.0.1或者:: 1 – maztch 2015-05-07 10:24:47

+0

感謝那個;) – daneczech 2015-05-11 11:24:53

+2

我這樣做了,但沒有工作 – 2016-02-15 17:40:37

0
'mysql' => array(
      'driver' => 'mysql', 
      'host'  => 'localhost', 
      'database' => 'homestead', 
      'username' => 'homestead', 
      'password' => 'secret', 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => '' 

嘗試了這一點,可能對你

1

對於其他的開發者還有誰是在其上運行Laravel作品的最新版本(5.3),我只是更改這些行:

DB_HOST=127.0.0.1 
DB_PORT=3306 

進入這個:

DB_HOST=localhost 
DB_PORT=33060 

顯然,33060將被轉換成3306,但現在不能解釋爲什麼localhost應該工作。

+0

這對我沒有用。 – Ryan 2017-04-05 13:49:58

0

由於某種原因,上述兩種工作方式都遇到了同樣的問題。對我而言,我在.env中嘗試了這一點,我將DB_HOST更改爲homestead.local。霍姆斯特德是我的網站的名字。這工作。

DB_HOST=homestead.local 
1

我解決了在Laravel的.env文件中的主機參數上替換地址127.0.1.1到localhost的問題。我正在使用GNU/Linux Debian 8,Laravel 5.6.3,PHP 7.1.8,Apache 2.4.27和(Mysql)10.1.26-MariaDB。

相關問題