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

Các tập lệnh MySQL trong docker-entrypoint-initdb không được thực thi

Bạn nên xóa data_volume trước khi chạy vùng chứa và các tệp sql sẽ được thực thi. Tập này data_volume có thể được gỡ bỏ bằng cách sử dụng lệnh:docker volume rm data_volume .

Nguyên nhân gốc rễ của sự cố của bạn có thể được tìm thấy trong docker-entrypoint.sh . Khi bạn chạy vùng chứa mysql, nó sẽ kiểm tra thư mục mysql /var/lib/mysql tồn tại hay không. Nếu thư mục không tồn tại (chạy lần đầu), nó sẽ chạy các tệp SQL của bạn.

    if [ ! -d "$DATADIR/mysql" ]; then
        //Some other logic here

        for f in /docker-entrypoint-initdb.d/*; do
            case "$f" in
                *.sh)     echo "$0: running $f"; . "$f" ;;
                *.sql)    echo "$0: running $f"; "${mysql[@]}" < "$f"; echo ;;
                *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;;
                *)        echo "$0: ignoring $f" ;;
            esac
            echo
        done 

Bạn có thể biết thêm chi tiết tại Nguồn Dockerfile



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để biết giao dịch nào đang gây ra trạng thái khóa siêu dữ liệu bảng Đang chờ?

  2. Cảnh báo:mysqli_connect ():(HY000 / 1045):Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost' (sử dụng mật khẩu:NO)

  3. Hệ thống nhắn tin trong php mysql

  4. Khóa ngoại trong MySQL?

  5. Truy vấn tham số PHP / MySQL