1030 Có lỗi 28 từ công cụ lưu trữ


205

Tôi đang làm việc trên một dự án mà tôi cần tạo một cơ sở dữ liệu với 300 bảng cho mỗi người dùng muốn xem ứng dụng demo. nó đã hoạt động tốt nhưng hôm nay khi tôi đang thử nghiệm với một người dùng mới để xem bản demo thì nó đã hiển thị cho tôi thông báo lỗi này

1030 Got error 28 from storage engine

Sau khi dành một chút thời gian để tìm hiểu, tôi thấy đó là một lỗi liên quan đến không gian của cơ sở dữ liệu hoặc các tệp tạm thời. Tôi đã cố gắng sửa nó nhưng tôi đã thất bại. bây giờ tôi thậm chí không thể bắt đầu mysql. Làm thế nào tôi có thể khắc phục điều này và tôi cũng muốn tăng kích thước lên tối đa để tôi không gặp phải vấn đề tương tự hết lần này đến lần khác.


1
Nói rõ ràng ... bạn có đủ không gian trống trên phân vùng lưu trữ dữ liệu mysql không? Bạn đang chạy trên nền tảng nào? Localhost hoặc một công ty lưu trữ?
Bộ giải mã

@DCoder: - Tôi có một máy chủ trên đám mây Amazon
ScoRpion

1
@ShowketBhat tôi có vấn đề tương tự, /tmpthư mục của tôi có 100% không gian sử dụng. Bạn có thể xóa tất cả các tập tin khỏi thư mục / tmp này không? Và một câu hỏi khác, tại sao nó không xóa tự động?
Dima Deplov

Câu trả lời:


412

Lỗi Mysql " 28 từ công cụ lưu trữ " - có nghĩa là " không đủ dung lượng đĩa ".

Để hiển thị không gian đĩa sử dụng lệnh dưới đây.

myServer# df -h

Kết quả phải như thế này.

Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/vdisk     13G     13G     46M   100%    /
devfs         1.0k    1.0k      0B   100%    /dev

6
Để biết thêm thông tin, Bạn sẽ gặp lỗi tương tự nếu hệ thống tập tin / tmp đạt 100% mức sử dụng.
Kumar

1
Ngay cả khi bạn có data_dir Mysql trong một phân vùng (hoặc đĩa) khác có dung lượng trống, bạn phải có không gian trống trên / và / tmp (tất nhiên bạn có thể có những cái cuối cùng trên một phân vùng / đĩa khác)
Diego Andrés Díaz Espinoza

1
Bạn đã lưu ngày của tôi, tôi đã tìm thấy tệp 390 Gb của nhật ký chậm ((
mulya

1
Câu trả lời tốt đẹp. Nó tiết kiệm rất nhiều thời gian của tôi. +1
Pratik Soni

34

Để mở rộng về điều này (mặc dù đó là một câu hỏi cũ hơn); Có lẽ không phải là về không gian MySQL, mà là về không gian nói chung, giả sử cho các tệp tmp hoặc một cái gì đó tương tự. Thư mục dữ liệu mysql của tôi không đầy đủ, phân vùng / (root) là


10

Tôi đã có vấn đề tương tự trong AWS RDS. Đó là do Không gian có thể điều khiển được (Không gian lưu trữ ổ cứng) đã đầy. Bạn cần tăng không gian của bạn, hoặc loại bỏ một số dữ liệu.


8

/ Tmp của tôi là% 100. Sau khi loại bỏ tất cả các tập tin và khởi động lại mysql, mọi thứ đều hoạt động tốt.


2

Thư mục / var / log / apache2 của tôi là 35g và một số nhật ký trong / var / log tổng cộng là 5g khác trong ổ cứng 40g của tôi. Tôi đã xóa tất cả các bản ghi * .gz và sau khi chắc chắn rằng các bản ghi khác sẽ không làm điều xấu nếu tôi nhắn tin với chúng, tôi cũng xóa chúng.

echo "clear" > access.log

Vân vân.


3
Đó là một cách rất kỳ lạ để xóa một tệp nhật ký phải không? Tại sao không chỉ rm nó?
dùng1175849

3
Có lẽ sau đó bạn có thể giữ các tập tin và quyền?
Zachary Dahan

9
Tôi khuyên bạn nên sử dụng truncateđể xóa nhật ký,truncate -s 0 access.log

2

Kiểm tra / sao lưu của bạn để xem nếu bạn có thể xóa một bản sao lưu không cần thiết cũ hơn.


1

Tôi đã có một vấn đề tương tự, vì bản sao của tôi bản ghi nhị phân .

Nếu đây là trường hợp, chỉ cần tạo một cronjob để chạy truy vấn này mỗi ngày:

PURGE BINARY LOGS BEFORE DATE_SUB( NOW(), INTERVAL 2 DAY );

Điều này sẽ loại bỏ tất cả các bản ghi nhị phân cũ hơn 2 ngày.

Tôi tìm thấy giải pháp này ở đây .


0

Một đơn giản: $ sth-> finish (); Có lẽ sẽ cứu bạn khỏi lo lắng về điều này. Mysql sử dụng không gian tmp của hệ thống thay vì không gian riêng của nó.


0
sudo su


cd /var/log/mysql

và loại cuối cùng: > mysql-slow.log

Điều này làm việc cho tôi


0

Bỏ cơ sở dữ liệu vấn đề, sau đó khởi động lại dịch vụ mysql ( sudo service mysql restartví dụ).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.