Pendahuluan
Proses MySQL yang tidak perlu dapat menyebabkan masalah kinerja pada sistem Anda. Seiring waktu, utas aktif menumpuk dan menghentikan server Anda sehingga mencegah pengguna mengakses tabel dan mengeksekusi permintaan.
Ketika penggunaan sumber daya sangat tinggi, Anda mungkin perlu mematikan proses MySQL. Panduan ini akan menunjukkan cara mengidentifikasi proses MySQL dan menghentikan proses.
Prasyarat
- Akses ke baris perintah/jendela terminal
- MySQL atau MariaDB terinstal
- Pengguna dengan sudo atau akar hak istimewa
Cara Menemukan Daftar Proses MySQL
Sebelum Anda dapat menemukan proses dan mematikannya, Anda harus mengakses server MySQL lokal atau jarak jauh. Untuk masuk ke akun lokal MySQL Anda sebagai root, buka terminal dan masukkan:
mysql -u root -p
Ketikkan kata sandi saat diminta. Saat shell MySQL dimuat, prompt menampilkan mysql>
.
Untuk menemukan proses yang akan dihentikan atau dihentikan, muat daftar dengan semua sesi aktif.
Di shell MySQL, gunakan kueri ini:
SHOW PROCESSLIST;
Output menampilkan informasi berikut:
Anda mungkin memiliki lebih banyak entri di daftar Anda. Perhatikan Id
dari proses yang ingin Anda bunuh. Time
kolom membantu Anda menentukan proses yang berjalan paling lama. Itu biasanya yang ingin Anda hentikan terlebih dahulu.
Cara Membunuh Proses MySQL
Untuk mematikan sesi MySQL dari daftar, gunakan KILL
kueri diikuti oleh utas Id
Anda catat sebelumnya.
KILL 14;
Shell menampilkan status kueri dan jumlah baris yang terpengaruh:“Kueri OK, 0 baris terpengaruh (0,06 detik) .” Kueri ini mengakhiri koneksi ke database, termasuk semua operasi yang terkait dengan koneksi.
Ingat bahwa pengguna harus memiliki hak istimewa yang tepat untuk dapat mematikan suatu proses.
Cara Membunuh Semua Proses MySQL untuk Pengguna Tertentu
MySQL tidak memiliki perintah unik untuk mematikan semua proses.
Untuk mematikan semua proses untuk pengguna tertentu, gunakan CONCAT
untuk membuat file dengan daftar utas dan pernyataan. Dalam kasus kami, kami memasukkan root sebagai pengguna. Untuk menentukan pengguna lain, ganti root dengan nama pengguna yang diinginkan.
SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist WHERE user='root' INTO OUTFILE '/tmp/process_list.txt';
Kueri ini membuat file bernama process_list.txt . Anda dapat mengedit nama sesuai keinginan Anda. Buka file dan tinjau apakah itu proses yang ingin Anda matikan. Saat Anda siap, masukkan:
SOURCE /tmp/process_list.txt;
Anda dapat menambahkan kondisi ke kueri untuk mempersempit daftar proses dalam file output. Misalnya, tambahkan time > 1000
ke perintah untuk hanya menyertakan proses dengan nilai waktu lebih tinggi dari 1000.
SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist WHERE user='root' and time>1000 INTO OUTFILE '/tmp/process_list.txt';