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_USER
và MYSQL_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_USER
và MYSQL_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).