Docker: Sambungan terjumpa ralat menolak semasa melaksanakan arahan artisan Laravel
P粉787820396
2023-08-07 16:24:22
<p>Saya menjalankan Laravel 5.4 dalam Docker. Ini adalah gubahan dok saya. fail yml:</p>
<pre class="brush:php;toolbar:false;">versi: '2'
perkhidmatan:
aplikasi:
nama_bekas: laravel_app
imej: webdevops/php-apache-dev:ubuntu-16.04
pautan:
- mysql
bergantung kepada:
- mysql
pelabuhan:
- 8888:80
jilid:
- .:/aplikasi
persekitaran:
buruh pelabuhan: 'benar'
WEB_DOCUMENT_ROOT: '/app/public'
WEB_NO_CACHE_PATTERN: '.(.*)$$'
working_dir: '/app'
mysql:
imej: mariadb:terkini
pelabuhan:
- 8889:80
persekitaran:
MYSQL_ROOT_PASSWORD: 'dev'
MYSQL_DATABASE: 'dev'
MYSQL_USER: 'dev'
MYSQL_PASSWORD: 'dev'</pre>
<p>Ini ialah bahagian <kod>.env</code> saya yang berkaitan:</p>
<pre class="brush:php;toolbar:false;">DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=8889
DB_DATABASE=dev
DB_USERNAME=dev
DB_PASSWORD=dev</pre>
<p>Saya dapat melihat halaman alu-aluan Laravel - ini berfungsi. Tetapi apabila saya menjalankan php artisan migrate saya mendapat ralat ini: </p>
<blockquote>
<p>SQLSTATE[HY000] [2002] Sambungan ditolak (SQL: pilih * daripada information_schema.tables di mana table_schema = dev dan table_name = migrasi)</p>
</blockquote>
<p>Saya telah cuba mengubah suai parameter hos dan port dalam fail .env. </p>
Letakkan nama bekas mysql saya dan bukannya 127.0.0.1
Pertama, edit fail docker-compose.yml anda
Kemudian, tetapkan port pangkalan data yang betul dalam fail .env
Port pangkalan data anda salah. Anda cuba menyambung ke port terdedah melalui contoh pangkalan data yang berjalan di dalam docker. Dalam kes ini, anda harus menggunakan DB_PORT=3306
dalam fail .env