Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengapa skrip docker-entrypoint-initdb.d saya (seperti yang ditentukan dalam docker-compose.yml) tidak dieksekusi untuk menginisialisasi instance MySQL baru?

Iblis bersembunyi secara detail...

Anda memiliki definisi ganda dari root di env vars Anda. root pengguna dibuat secara default dengan kata sandi dari MYSQL_ROOT_PASSWORD . Anda kemudian meminta untuk membuat pengguna "normal" kedua... dengan nama dan sandi yang sama persis (yaitu dengan MYSQL_USER dan MYSQL_PASSWORD )

Jika Anda melihat dengan cermat pada log startup Anda, Anda akan melihat kesalahan

db_1       | ERROR 1396 (HY000) at line 1: Operation CREATE USER failed for 'root'@'%'

Ini sebenarnya menghentikan pemrosesan lebih lanjut dari file init Anda di docker-entrypoint-initdb.d dan melanjutkan proses pengaktifan gambar lainnya (yaitu memulai ulang mysql setelah inisialisasi pada server sementara).

Cukup letakkan MYSQL_USER dan MYSQL_PASSWORD di env vars Anda, atau atur pengguna yang berbeda dari root dan Anda akan segera melihat file init Anda diproses (jangan lupa untuk mengosongkan direktori data Anda lagi).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pindahkan data dari satu tabel MySQL ke tabel lainnya

  2. INSERT INTO jika kondisi terpenuhi

  3. Doctrine 2 menambahkan bidang baru yang secara otomatis menghasilkan nilai urutan

  4. WooCommerce:Menemukan produk di database

  5. SQL Dalam Klausa dengan Nol ke Banyak Parameter