Mengganti format BINLOG

Saya awali dulu, aslinya baru tahu soal format binary logging milik MySQL dari laporan mas Hartono soal errornya. 😀 Sayang pesan error yang dicopas tidak lengkap dan tidak dijelaskan kenapa bisa begitu, tapi kurang lebih mestinya seperti ini:

Jan 30 12:09:58 ubuntu mysqld[10041]: 2017-01-30 12:09:58 140268010343168 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.

Yang pasti akhirnya saya baca – baca apa itu binlog yang dimaksud. 🙂 Jadi ini adalah format pencatatan (logging) dari aktivitas database dari MySQL yang disimpan secara format khusus bukan teks, setidaknya ada 3 jenis yang bisa digunakan:

  • STATEMENT – Default. Ini berarti setiap eksekusi query SQL yang berpengaruh ke data atau struktur tabel akan dicatat.
  • ROW – Sedangkan ini akan mencatat per baris.
  • MIXED – Campuran.

Saya kurang jago menjelaskan detailnya, tapi bisa dibaca dokumentasinya dari sini: https://mariadb.com/kb/en/mariadb/binary-log-formats/

Sedangkan untuk mengubah format binary logging dari MySQL/MariaDB/Percona bisa jalankan salah satu dari ini:

SET GLOBAL binlog_format = 'STATEMENT';
SET GLOBAL binlog_format = 'ROW';
SET GLOBAL binlog_format = 'MIXED';

Eksekusi yang anda butuhkan saja.

Kembali ke masalahnya, ini solusinya bagaimana? Silahkan coba eksekusi perintah ini:

FLUSH TABLES WITH READ LOCK;
FLUSH LOGS;
SET GLOBAL binlog_format = 'MIXED';
FLUSH LOGS;
UNLOCK TABLES;

Kita akan membersihkan tabel yang terkunci pembacaannya, log dan mengganti format binlog ke MIXED. Setelah itu mestinya akan normal kembali database MySQLnya.

8 Comments

  1. Waahh… terimakasih banyak mas, ini jawaban saya tunggu tunggu nah setelah saya lakukan perintah di atas lalu saya restart MariaDB nya dan keluar seperti berikut:

    Feb 03 18:52:26 ubuntu mysqld[19149]: 2017-02-03 18:52:26 139691823581440 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.34-79.1 started; log sequence number 54155095
    Feb 03 18:52:26 ubuntu mysqld[19149]: 2017-02-03 18:52:26 139691823581440 [Note] Plugin 'FEEDBACK' is disabled.
    Feb 03 18:52:26 ubuntu mysqld[19149]: 2017-02-03 18:52:26 139690908813056 [Note] InnoDB: Dumping buffer pool(s) not yet started
    Feb 03 18:52:26 ubuntu mysqld[19149]: 2017-02-03 18:52:26 139691823581440 [Note] Server socket created on IP: '127.0.0.1'.
    Feb 03 18:52:26 ubuntu mysqld[19149]: 2017-02-03 18:52:26 139691823581440 [Note] Reading of all Master_info entries succeded
    Feb 03 18:52:26 ubuntu mysqld[19149]: 2017-02-03 18:52:26 139691823581440 [Note] Added new Master_info '' to hash table
    Feb 03 18:52:26 ubuntu mysqld[19149]: 2017-02-03 18:52:26 139691823581440 [Note] /usr/sbin/mysqld: ready for connections.
    Feb 03 18:52:26 ubuntu mysqld[19149]: Version: '10.1.21-MariaDB-1~xenial'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution
    Feb 03 18:52:26 ubuntu mysqld[19179]: Checking for corrupt, not cleanly closed and upgrade needing tables.
    Feb 03 18:52:26 ubuntu systemd[1]: Started MariaDB database server.

    apakah itu normal mas? ini saya baru install ee pakai ubuntu, keteranganya itu warna merah jadi bertanya tanya.
    terimakasih mas

  2. iya mas normal normal saja sih, tapi setiap saya cek ke-esokan harinya keluar warning warning terus, dan saya lakukan perintah diatas lalu ke esokanya keluar lagi apa setiap hari harus melakukan cara ini ya?

  3. sekarang kelur baris:

    Suppressing warnings of type 'The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included

    pada bagian bawah warning warning

    1. Nah itu mas, itu karena kode SQL yang dipakai scriptnya yang dianggap kurang aman. Lah kalau sudah dari WordPress (Tema, Plugin, dan sebagainya) sudah diracik gitu ya kita ga bisa apa – apa kecuali mau ganti.

  4. Oww kesimpulanya ada kode yg ga kompatibel ya mas, antara di plugin dan theme wp nya berati saya cek satu per satu dulu, terimakasih mas

Tinggalkan Balasan ke Chandra Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *