GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara Menyimpan output SHOW PROCESSLIST ke dalam file di MySQL?

Pertanyaan: Saya telah menggunakan perintah SPOOL di Oracle SQL untuk menyimpan hasil kueri ke dalam file dan setelah semuanya selesai, spool dapat dimatikan. Bagaimana saya bisa mencapai hal yang sama di MySQL? Misalnya, Di MySQL, kueri 'SHOW FULL PROCESSLIST' akan mencantumkan semua proses MySQL yang sedang berjalan di layar (dan jika daftarnya panjang, Anda hanya akan melihat beberapa baris terakhir di layar). Saya ingin tahu apakah ada perintah seperti SPOOL di MySQL untuk menyimpan hasil kueri ke dalam file? atau setidaknya saya harus bisa menyalurkan ( | ) output ke perintah shell seperti 'more'.

Dalam ORACLE SQL:

Untuk menyimpan output hasil query dalam sebuah file, saya menggunakan spool.

sqlplus> SPOOL /tmp/output.txt
sqlplus> select * from UserTable;
sqlplus> SPOOL off;

Jawaban:Untuk MySQL

Metode 1:

Tidak ada perintah SPOOL di MySQL, tetapi Anda dapat menggunakan perintah alternatif tee untuk mengaktifkan pencatatan dan catatan untuk mematikan logging.

mysql> tee /tmp/test.txt
 Logging to file '/tmp/test.txt'
 mysql> show full processlist;
 +------+-----------+-----------+--------+---------+------+-------+-----------------------+
 | Id | User | Host | db | Command | Time | State | Info |
 +------+-----------+-----------+--------+---------+------+-------+-----------------------+
 | 7478 | sample | host.name| dbname | Sleep | 0 | | NULL |
 | 7479 | sample | host.name | NULL | Query | 0 | NULL | show full processlist |
 +------+-----------+-----------+--------+---------+------+-------+-----------------------+
 2 rows in set (0.00 sec)
 mysql> notee
 Outfile disabled.

Sekarang, Anda dapat memeriksa file log /tmp/text.txt.

Metode 2:  Anda dapat menjalankan kueri MySQL dari prompt shell dan menyalurkan output ke lebih banyak lagi.

$ mysql -u root -p -e "show full processlist" | more

Catatan: Anda memerlukan hak istimewa untuk menjalankan kueri daftar proses.

Metode 3: Anda dapat menjalankan kueri dari prompt shell dan mengarahkan output ke file seperti yang ditunjukkan di bawah ini:

$ mysql -u root -p -e "show full processlist" | tee /tmp/out.txt

(atau)

$ mysql -u root -p -e "show full processlist" > /tmp/out.txt
Catatan: Anda memerlukan hak istimewa untuk menjalankan kueri daftar proses.

SELECT INTO OUTFILE digunakan untuk kueri SELECT:

Jika Anda menjalankan kueri pemilihan, maka Anda dapat menggunakan SELECT INTO OUTFILE seperti yang ditunjukkan di bawah ini:

mysql> select * into outfile '/tmp/out.txt' from user_table;

Semoga membantu.


Linux
  1. Cara Menyimpan Output Perintah ke File di Linux

  2. Output Ke Stdout Dan Pada Saat Yang Sama Grep Ke File?

  3. Linux – Bagaimana Cara Menampilkan Sar Untuk Hari Sebelumnya?

  1. Bagaimana cara mengarahkan output dari system() ke file?

  2. Bagaimana cara mengarahkan output dari perintah waktu ke file di Linux?

  3. Cara menambahkan konten dari banyak file ke dalam satu file

  1. Linux – Bagaimana Cara Menampilkan Jenis Filesystem Melalui Terminal??

  2. Bagaimana Cara Menampilkan Path Lengkap File Atau Direktori Di Terminal?

  3. Tidak dapat menampilkan data MySQL ke file