Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao tập lệnh docker-entrypoint-initdb.d của tôi (như được chỉ định trong docker-compos.yml) không được thực thi để khởi tạo một phiên bản MySQL mới?

Ma quỷ ẩn trong chi tiết ...

Bạn có định nghĩa kép về root trong env vars của bạn. root người dùng được tạo theo mặc định với mật khẩu từ MYSQL_ROOT_PASSWORD . Sau đó, bạn yêu cầu tạo người dùng "bình thường" thứ hai ... có cùng tên và mật khẩu (tức là với MYSQL_USERMYSQL_PASSWORD )

Nếu bạn xem kỹ nhật ký khởi động của mình, bạn sẽ thấy lỗi

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

Điều này thực sự ngừng xử lý thêm các tệp init của bạn trong docker-entrypoint-initdb.d và tiếp tục với phần còn lại của quá trình khởi động hình ảnh (tức là khởi động lại mysql sau khi khởi chạy trên máy chủ tạm thời).

Chỉ cần thả MYSQL_USERMYSQL_PASSWORD trong env vars của bạn hoặc đặt người dùng khác với root và bạn sẽ ngay lập tức thấy các tệp init của mình được xử lý (đừng quên làm trống kho dữ liệu của bạn một lần nữa).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các mục tìm kiếm và hiển thị trang web PHP

  2. Chiến lược nhóm kết nối:Tốt, Xấu hay Xấu?

  3. Truy vấn UPDATE không hoạt động với LIMIT

  4. Làm cách nào để cài đặt máy khách MySQL dòng lệnh trên mac?

  5. mysql muốn khớp từ hoàn chỉnh hoặc đầu từ trên chuỗi