cari

Rumah  >  Soal Jawab  >  teks badan

Docker: Sambungan terjumpa ralat menolak semasa melaksanakan arahan artisan Laravel

<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>
P粉787820396P粉787820396552 hari yang lalu617

membalas semua(2)saya akan balas

  • P粉295728625

    P粉2957286252023-08-08 13:47:57

    Letakkan nama bekas mysql saya dan bukannya 127.0.0.1

    NAME CONTAINERS
    
    project-db --> container mysql
    project-app --> container laravel
    
    DB_CONNECTION=mysql
    DB_HOST=project-db
    DB_PORT=3306
    DB_DATABASE=project
    DB_USERNAME=root
    DB_PASSWORD=root

    balas
    0
  • P粉225961749

    P粉2259617492023-08-08 12:59:00

    Pertama, edit fail docker-compose.yml anda

    mysql:
        image: mariadb:latest
        ports:
          - 8889:3306

    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

    balas
    0
  • Batalbalas