我無法理解如何讓Laradock正確使用mysql數據庫。Laradock不能與mysql一起工作
我按照laradock文檔和安裝的一切,用
docker-compose up -d nginx mysql
我有多個項目版本的佈局像這樣
project
+laradock-spa
PHP端似乎工作旋轉起來的容器,我可以得到laravel歡迎頁面,但是獲取數據庫連接導致我的問題。
首先,我應該在哪裏運行php artisan命令,如php artisan migrate
?應該從我的機器在項目文件夾中運行,還是從Docker容器內運行?
當我從我的項目文件夾中運行它時,它可以工作,我可以進入mysql容器並查看最初的db表,如migration
和user
。
,但我不能讓一個初始POST到數據庫內郵差工作 - 我得到錯誤SQLSTATE[HY000] [2002] No such file or directory (SQL: insert into users (...
所以我想,也許我應該從工作空間容器中運行的遷移命令,所以我慶典到工作區,但是從這裏[Illuminate\Database\QueryException] SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schem a.tables where table_schema = spa and table_name = migrations)
正如我所說的,我可以成功進入mysql容器中,並使用root密碼登錄到數據庫,並運行第一次遷移後,我可以看到的php artisan migrate
命令錯誤裏面的桌子。
docker ps
顯示所有容器。
有人可以解釋它是如何工作的,以及如何解決這個問題?我不知道我應該在哪裏運行哪些命令,以及容器如何相互交流。但基本上,我怎樣才能讓MySQL數據庫在laravel項目中工作?
順便說一句,我有本地的MySQL運行在PC上,也許這是造成一些衝突/混亂?
我在Win10上運行所有這些。
原來,.ENV需要'DB_HOST = mysql'爲了這個工作。仍然困惑,但我會離開這裏,以防萬一它幫助其他人 – yoyoma