Những tập tin này là gì, tôi có thể xóa chúng bằng tay không?


11
[root@jiaoyou mysql]# pwd
/var/lib/mysql
[root@jiaoyou mysql]# ls -ls
338256 -rw-rw---- 1 mysql mysql 346030080 2010-04-22 08:08 ibdata1
626812 -rw-rw---- 1 mysql mysql 641222072 2010-01-26 07:17 mysql-bin.000008
316892 -rw-rw---- 1 mysql mysql 324173772 2010-03-25 12:51 mysql-bin.000009
52724 -rw-rw---- 1 mysql mysql  53931666 2010-04-12 12:13 mysql-bin.000010
10136 -rw-rw---- 1 mysql mysql  10359639 2010-04-22 08:32 mysql-bin.000011

mysql> SHOW BINARY LOGS; 
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000008 | 641222072 | 
| mysql-bin.000009 | 324173772 | 
| mysql-bin.000010 |  53931666 | 
| mysql-bin.000011 |  10360680 | 
+------------------+-----------+

Những tập tin này ibdata1, mysql-bin.000008mysql-bin.000009... đang chiếm quá nhiều không gian của tôi, nó sẽ được ok cho tôi để xóa một số trong số họ cách thủ công?

CẬP NHẬT Tôi không sử dụng master / Slave của MySQL, làm thế nào để thả và vô hiệu hóa tất cả các tệp nhị phân?


HIỂN THỊ Nhật ký BINary; có thể trả về một thông báo lỗi như "Lỗi 1381: Bạn không sử dụng ghi nhật ký nhị phân".
người đàn ông bằng đồng

Nếu bạn nhận được Lỗi 1381: Bạn không sử dụng thông điệp ghi nhật ký nhị phân, điều đó có nghĩa là gì? Sau đó có an toàn để xóa các tập tin bằng tay?
Dan J.

Câu trả lời:


9

Đó là những bản ghi mys mys bin. Máy chủ có thể bị kích thích nghiêm trọng nếu bạn xóa chúng bằng rm.

Thay vào đó, sử dụng PURGE BINARY LOGS TO 'mysql-bin.010';như người dùng mysql gốc để cho phép nó xóa các tệp một cách an toàn.

Thông tin thêm có thể được tìm thấy ở đây trong tài liệu.


Mối quan hệ giữa các Nhật ký BINary này là gì?
apache

Đây là các tệp trong thư mục cơ sở dữ liệu / var / lib / mysql của bạn.
Tom O'Connor

5

Đây là các tệp nhật ký cho dịch vụ mysql. Có thể tùy chỉnh cài đặt bằng cách cập nhật tệp /etc/my.cnf

Nếu họ đang chiếm hết dung lượng đĩa của bạn thì hãy thêm cài đặt để tự động xóa nhật ký dựa trên số ngày bạn muốn giữ

Ví dụ: cài đặt bên dưới sẽ xóa tất cả các bản ghi cũ hơn 90 ngày

**expire_logs_days=100**

Để phản ánh cài đặt này, chúng tôi cần khởi động lại dịch vụ mysql

/etc/init.d/mysql restart

Hi vọng điêu nay co ich


Đây là giải pháp bền nhất. Đây cũng là cách dễ nhất để thanh lọc nếu bạn không nhớ mật khẩu MySQL của mình :-)
kasimir

Giải pháp tốt nhất! Nếu bạn muốn lọc tất cả các tệp, chỉ cần đặt thành 0 ngày, sau đó quay lại giá trị tốt dựa trên ứng dụng của bạn. Cảm ơn, bạn thân!
Fábio N Lima

4

Các mysql-bintệp này là nhật ký nhị phân, thường là cho cả lịch sử giao dịch hoặc cho mục đích sao chép. Để vô hiệu hóa ghi nhật ký nhị phân, bạn có thể nhận xét các log-bin*dòng trong cnf. log-slave-updatesnên được bình luận quá nếu kích hoạt.

ibdata*các tệp là một phần của không gian bảng của InnoDB, được chỉ định cùng với innodb_data_file_pathcài đặt. Tôi không khuyên bạn nên xóa trừ khi bạn không có bảng InnoDB và trước tiên vô hiệu hóa InnoDB bằng cách sử dụng skip-innodbtrong cnf.


Tôi có cần bình luận server-idđể vô hiệu hóa nó?
apache

Không, bạn không nhưng bạn có thể. Điều đó được sử dụng để xác định máy chủ duy nhất trong quá trình sao chép.
Warner

0

Để vô hiệu hóa ghi nhật ký hoàn toàn, bạn cần nhận xét giá trị log-bin trong tệp cấu hình của bạn (thường là /etc/my.cnf):

#log-bin = /var/log/mysql/mysql-bin.log

Tôi nghĩ rằng tệp ibdata1 có thể chứa cơ sở dữ liệu thực tế - Tôi không sử dụng innodb nên tôi không chắc chắn - và vì vậy tôi không khuyên bạn nên xóa cơ sở dữ liệu đó. Lệnh "PURGE BINary LOGS TO ..." sẽ thoát khỏi các bản ghi nhị phân.

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.