Saya telah membaca bahwa server Mysql membuat file log di mana ia menyimpan catatan semua aktivitas - seperti kapan dan apa yang dieksekusi query.
Adakah yang bisa memberitahu saya di mana itu ada di sistem saya? Bagaimana saya bisa membacanya?
Pada dasarnya, saya perlu membuat cadangan database dengan input berbeda [cadangan antara dua tanggal] jadi saya pikir saya perlu menggunakan file log di sini, itu sebabnya saya ingin melakukannya ...
Saya pikir log ini harus diamankan entah bagaimana karena informasi sensitif seperti nama pengguna dan kata sandi dapat dicatat [jika ada permintaan yang memerlukan ini]; jadi mungkinkah itu diamankan, tidak mudah dilihat?
Saya memiliki akses root ke sistem, bagaimana saya bisa melihat log?
Ketika saya mencoba untuk membuka /var/log/mysql.log itu kosong.
Ini adalah file konfigurasi saya:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
log = /var/log/mysql/mysql.log
binlog-do-db=zero
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
general_log_file = /var/log/mysql/mysql.log
general_log = 1
/etc/mysql/conf.d/mysqld_safe_syslog.cnf
hanya jika log kesalahan harus diaktifkan. Namun, jawaban ini seperti yang saat ini ditulis tampaknya menyarankannya untuk semua log.slow_query_log = 1;
,slow_query_log_file = /var/log/mysql/mysql-slow-query.log
dan dilong_query_time = 60
bawah [mysqld]. Ketika saya mencoba untuk memulai dengan konfigurasi Anda, server mulai, tetapi lambat dan lambat dengan kesalahan. Saya benar-benar mengira versi berbeda dan dalam versi selanjutnya oracle ingin menyatukan variabel-nama. Juga: IMHO 2 detik tidak terlalu lama.Anda harus mengaktifkan pendataan kueri di mysql.
edit /etc/my.cnf
restart komputer atau layanan mysqld
buka phpmyadmin / aplikasi apa pun yang menggunakan mysql / mysql console dan jalankan kueri
cat /tmp/mysql.log
(Anda harus melihat kueri)sumber
Log MySQL ditentukan oleh variabel global seperti:
log_error
untuk log pesan kesalahan;general_log_file
untuk file log kueri umum (jika diaktifkan olehgeneral_log
);slow_query_log_file
untuk file log kueri lambat (jika diaktifkan olehslow_query_log
);Untuk melihat pengaturan dan lokasinya, jalankan perintah shell ini:
Untuk mencetak nilai log kesalahan, jalankan perintah ini di terminal:
Untuk membaca konten file log kesalahan secara real time, jalankan:
Catatan: Hit Control- Csaat selesai
Ketika log umum diaktifkan, coba:
Untuk digunakan
mysql
dengan akses kata sandi, tambahkan-p
atau-pMYPASS
parameter. Agar tetap diingat, Anda dapat mengkonfigurasinya di~/.my.cnf
, misalnyaJadi itu akan diingat untuk waktu berikutnya.
sumber
Di file LAMP saya (saya sudah menginstal) / etc / mysql / my.cnf yang saya temukan berikut, berkomentar di bagian [mysqld]:
Saya harus membuka file ini sebagai pengguna super, dengan terminal:
(Saya lebih suka menggunakan Geany daripada gedit atau VI, tidak masalah)
Saya baru saja menghapus komentar mereka & menyimpan file kemudian menata ulang mysql dengan
Jalankan beberapa query, buka file di atas (/var/log/mysql/mysql.log) dan log ada di sana :)
sumber
Dari manual referensi MySQL:
Periksa
/var/lib/mysql
folder.sumber
sudo -s
kemudian coba buka folder mysql.Untuk melengkapi jawaban loyola , perlu disebutkan bahwa pada MySQL 5.1
log_slow_queries
sudah usang dan diganti denganslow-query-log
Penggunaan
log_slow_queries
akan menyebabkan Andaservice mysql restart
atauservice mysql start
gagalsumber
sumber
Selain jawaban di atas, Anda dapat mengirimkan parameter baris perintah ke proses mysqld untuk opsi log bukannya mengedit file conf Anda secara manual. Misalnya, untuk mengaktifkan pencatatan umum dan menentukan file:
Mengkonfirmasi jawaban lain di atas,
mysqld --help --verbose
memberi Anda nilai dari file conf (jadi menjalankan dengan opsi baris perintah log umum adalah SALAH); sedangkanmysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
memberi:Gunakan sintaks yang sedikit lebih kompak untuk log kesalahan:
sumber