Khắc Phục Lỗi ERROR 1114 (HY000): The Table Is Full Khi Import Database

Chào bạn, để nội dung bài viết chuyên nghiệp, đầy đủ và mang đậm phong cách kỹ thuật hỗ trợ của Zhost, mình đã biên tập lại hướng dẫn này. Bài viết được bổ sung thêm các trường hợp thực tế (như giới hạn bảng tạm và phân vùng /tmp) để khách hàng có cái nhìn toàn diện hơn.

1114

Khắc Phục Lỗi ERROR 1114 (HY000): The Table Is Full Khi Import Database

 

Lỗi ERROR 1114 (HY000): The table is full là một trở ngại phổ biến khi thực hiện Import Database dung lượng lớn. Dù thông báo là “bảng đã đầy”, nhưng nguyên nhân có thể đến từ việc hết tài nguyên phần cứng hoặc các giới hạn cấu hình trong MySQL/MariaDB.

Trong bài viết này, Zhost sẽ hướng dẫn bạn 3 bước kiểm tra và xử lý triệt để lỗi này.

Nguyên nhân gây lỗi

Lỗi này thường xuất phát từ 3 nhóm nguyên nhân chính:

  1. Dung lượng ổ cứng VPS bị đầy: Không còn không gian để ghi dữ liệu mới.

  2. Cấu hình giới hạn tệp InnoDB: Tệp dữ liệu ibdata1 bị giới hạn dung lượng tối đa.

  3. Tràn bộ nhớ bảng tạm (Temporary Tables): Khi import, MySQL tạo các bảng tạm vượt quá mức RAM/Disk cho phép.

Các bước xử lý chi tiết

Bước 1: Kiểm tra dung lượng ổ cứng (Disk Space)

Trước tiên, hãy đảm bảo VPS của bạn vẫn còn khoảng trống để chứa dữ liệu mới.

  1. SSH vào VPS với quyền root.

  2. Sử dụng lệnh:

    df -h

  3. Xử lý: Kiểm tra cột Use%. Nếu phân vùng / hoặc /var/lib/mysql báo 100%, bạn cần xóa các file backup cũ, log không cần thiết hoặc nâng cấp dung lượng ổ cứng tại Zhost.

Bước 2: Điều chỉnh cấu hình InnoDB Data File

Nếu ổ cứng vẫn còn trống, nguyên nhân thường do tệp dữ liệu của MySQL bị giới hạn cứng về kích thước.

  1. Mở file cấu hình MySQL:

    vi /etc/my.cnf
  2. Tìm dòng innodb_data_file_path . Nếu đã có, hãy điều chỉnh hoặc thêm mới như sau:

    innodb_data_file_path = ibdata1:10M:autoextend

    Lưu ý: Sử dụng autoextend để tệp tự động mở rộng thay vì đặt giới hạn max:512M như cấu hình cũ.

 

Bước 3: Tăng giới hạn bảng tạm (Memory & Tmp Table)

Trong một số trường hợp, việc import các bảng có index phức tạp sẽ tạo ra bảng tạm rất lớn.

  1. Thêm các thông số sau vào file /etc/my.cnf dưới thẻ [mysqld]:tmp_table_size = 256M
    max_heap_table_size = 256M

  2. Lưu file và khởi động lại dịch vụ để áp dụng thay đổi:

            #Systemctl restart mysqld
           # Hoặc restart mariadb

Lưu ý đối với người dùng cPanel (Shared Hosting)

Nếu bạn đang sử dụng Hosting và gặp lỗi này, bạn sẽ không thể can thiệp vào file my.cnf.

  • Kiểm tra Quota: Đảm bảo gói hosting của bạn chưa vượt quá dung lượng đĩa cho phép.

  • Chia nhỏ file SQL: Sử dụng các công cụ như SQLDumpSplitter để chia nhỏ Database thành nhiều phần và import lần lượt qua phpMyAdmin.

  • Liên hệ hỗ trợ: Gửi yêu cầu hỗ trợ (Ticket) để kỹ thuật viên Zhost kiểm tra các thông số server cho bạn.

Tổng kết

Lỗi The table is full không quá đáng sợ nếu bạn xác định đúng nguyên nhân do phần cứng hay cấu hình phần mềm. Hy vọng hướng dẫn của Zhost giúp bạn hoàn thành việc import dữ liệu một cách suôn sẻ.