Apa file-file ini, dapatkah saya menghapusnya secara manual?

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

File-file ini ibdata1, mysql-bin.000008dan mysql-bin.000009... memakan terlalu banyak ruang saya, apakah saya boleh menghapusnya secara manual?

PEMBARUAN Saya tidak menggunakan master / slave MySQL, bagaimana cara menjatuhkan dan menonaktifkan semua file biner?

apache
sumber
TAMPILKAN LOG BINARY; dapat mengembalikan pesan kesalahan seperti "Kesalahan 1381: Anda tidak menggunakan pencatatan biner".
pria perunggu
Jika Anda menerima Kesalahan 1381: Anda tidak menggunakan pesan logging biner, apa artinya itu? Apakah aman menghapus file secara manual?
Dan J.

Jawaban:

9

Itu adalah log bin mysql. Server bisa sangat kesal jika Anda menghapusnya dengan rm.

Sebagai gantinya, gunakan PURGE BINARY LOGS TO 'mysql-bin.010';sebagai pengguna root mysql untuk membiarkannya menghapus file dengan aman.

Informasi lebih lanjut dapat ditemukan di sini dalam dokumentasi.

Tom O'Connor
sumber
Apa hubungan antara LOG BINARY ini?
apache
Ini adalah file-file yang ada di direktori database / var / lib / mysql Anda.
Tom O'Connor
5

Ini adalah file log untuk layanan mysql. Pengaturan dapat disesuaikan dengan memperbarui file /etc/my.cnf

Jika mereka menghabiskan ruang disk Anda, kemudian tambahkan pengaturan ke log yang dihapus secara otomatis berdasarkan jumlah hari yang ingin Anda pertahankan

Untuk mis. Pengaturan di bawah ini akan menghapus semua log yang lebih tua dari 90 hari

**expire_logs_days=100**

untuk mencerminkan pengaturan ini, kita perlu me-restart layanan mysql

/etc/init.d/mysql restart

Semoga ini membantu

Sanjay Bharwani
sumber
Ini adalah solusi paling tahan lama. Juga cara termudah untuk membersihkan jika Anda tidak begitu ingat kata sandi MySQL Anda :-)
kasimir
Solusi terbaik yang pernah ada! Jika Anda ingin membersihkan semua file, atur ke 0 hari, dan kemudian kembali ke nilai yang baik berdasarkan aplikasi Anda. Terima kasih teman!
Fábio N Lima
4

The mysql-binfile log biner, yang biasanya baik untuk baik sejarah transaksi atau untuk tujuan replikasi. Untuk menonaktifkan logging biner, Anda dapat mengomentari log-bin*baris dalam cnf. log-slave-updatesharus dikomentari juga jika diaktifkan.

ibdata*file adalah bagian dari tablespace InnoDB, yang ditentukan dengan innodb_data_file_pathpengaturan. Saya tidak akan merekomendasikan menghapus kecuali Anda tidak memiliki tabel InnoDB dan menonaktifkan InnoDB terlebih dahulu dengan menggunakan skip-innodbcnf.

Warner
sumber
Apakah saya perlu mengomentari server-iduntuk menonaktifkannya?
apache
Tidak, Anda tidak tetapi Anda bisa. Itu digunakan untuk mengidentifikasi server secara unik selama replikasi.
Warner
0

Untuk menonaktifkan logging sepenuhnya, Anda perlu mengomentari nilai log-bin dalam file config Anda (biasanya /etc/my.cnf):

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

Saya pikir file ibdata1 mungkin berisi database yang sebenarnya - saya tidak menggunakan innodb jadi saya tidak yakin - dan jadi saya tidak akan merekomendasikan menghapus yang itu. Perintah "PURGE BINARY LOGS TO ..." akan menyingkirkan log biner.

malonso
sumber