Bu dosyalar nedir, manuel olarak silebilir miyim?


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 | 
+------------------+-----------+

Bu dosyalar ibdata1, mysql-bin.000008ve mysql-bin.000009... benim yerimden çok fazla yer kaplıyor, bazılarını el ile silmem uygun olur mu?

GÜNCELLEME MySQL master / slave kullanmıyorum, tüm ikili dosyaları nasıl bırakıp devre dışı bırakabilirim?


İKİLİ GÜNLÜKLERİ GÖSTER; "Hata 1381: İkili günlük kullanmıyorsunuz" gibi bir hata iletisi döndürebilir.
bronz adam

Hata 1381: İkili günlük iletisi kullanmıyorsanız, bunun anlamı nedir? O zaman dosyaları manuel olarak silmek güvenli midir?
Dan J.

Yanıtlar:


9

Bunlar mysql bin günlükleridir. Eğer rm ile silerseniz sunucu ciddi şekilde tahriş olabilir.

Bunun yerine, PURGE BINARY LOGS TO 'mysql-bin.010';dosyaları güvenli bir şekilde silmesine izin vermek için root mysql kullanıcısı olarak kullanın.

Daha fazla bilgi burada dokümantasyonda bulunabilir.


Bu İKİLİ GÜNLÜKLER arasındaki ilişki nedir?
apache

Bunlar, / var / lib / mysql dizininizdeki dosyalardır.
Tom O'Connor

5

Bunlar mysql servisi için günlük dosyalarıdır. Ayar /etc/my.cnf dosyası güncellenerek özelleştirilebilir

Disk alanınızı tüketiyorlarsa, saklamak istediğiniz gün sayısına göre günlükleri otomatik silme ayarını ekleyin

Örneğin, aşağıdaki ayar 90 günden eski tüm günlükleri silecektir

**expire_logs_days=100**

bu ayarı yansıtmak için mysql hizmetini yeniden başlatmamız gerekiyor

/etc/init.d/mysql restart

Bu yardımcı olur umarım


Bu en dayanıklı çözümdür. Ayrıca MySQL şifrelerinizi tam olarak hatırlamıyorsanız temizlemek için en kolay yol :-)
kasimir

Şimdiye kadarki en iyi çözüm! Tüm dosyaları temizlemek istiyorsanız, 0 gün olarak ayarlayın ve ardından uygulamanıza göre iyi bir değere dönün. Teşekkürler dostum!
Fábio N Lima

4

mysql-binDosyaları ya bir işlem tarihi için veya çoğaltma amacıyla hem tipik ikili günlükleri vardır. İkili günlüğü devre dışı bırakmak log-bin*için cnf'deki satırları yorumlayabilirsiniz . log-slave-updatesetkinleştirilmişse de yorumlanmalıdır.

ibdata*dosyaları InnoDB'nin innodb_data_file_pathayar ile belirtilen tablo alanının bir parçasıdır . Hiçbir InnoDB tablo yoksa ve ilk skip-innodbcnf kullanarak InnoDB devre dışı bırakma sürece silme tavsiye etmem .


Devre server-iddışı bırakmak için yorum yapmam gerekir mi?
apache

Hayır, değil ama yapabilirsin. Bu, sunucuyu çoğaltma sırasında benzersiz olarak tanımlamak için kullanılır.
Warner

0

Günlüğe kaydetmeyi tamamen devre dışı bırakmak için yapılandırma dosyanızdaki (genellikle /etc/my.cnf) günlük kutusu değerini yorumlamanız gerekir:

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

Ibdata1 dosyası olsa da gerçek veritabanı içerebilir - emin değilim bu yüzden innodb kullanmıyorum - ve bu yüzden bu bir kaldırma tavsiye etmem. "BINARY LOGS TO ..." komutu, ikili günlüklerden kurtulur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.