MySQLdump Got Error 1016: Can’t Open File When Using LOCK TABLES

mysqldump got error 1016. Pesan di atas saya temui barusan ketika mengekspor database WordPress, yang ternyata baru saya ketahui jumlah tabelnya ada 1719 buah. Error tersebut adalah kemungkinan yang akan muncul manakala kamu ingin mengekspor satu buah database dengan jumlah tabel hingga ribuan. Salah satu aplikasi PHP MySQL populer yang memungkinkan populasi tabel hingga empat […]

Server + Linux

mysqldump got error 1016

mysqldump got error 1016. Pesan di atas saya temui barusan ketika mengekspor database WordPress, yang ternyata baru saya ketahui jumlah tabelnya ada 1719 buah. Error tersebut adalah kemungkinan yang akan muncul manakala kamu ingin mengekspor satu buah database dengan jumlah tabel hingga ribuan. Salah satu aplikasi PHP MySQL populer yang memungkinkan populasi tabel hingga empat digit adalah WordPress Multisite (dulu WordPress Multi User).

Instalasi WordPress single user, biasanya hanya membuat 11 buah tabel default. Menambahkan plugin ke instalasi WordPress adakalanya akan menambah tabel lagi, tergantung dengan plugin yang dipasang.

WordPress Multisite memungkinkan satu buah instalasi WordPress diisi dengan dua, tiga, hingga ribuan blog yang berbeda. Contoh paling mudah adalah WordPress.com yang merupakan satu buah instalasi WordPress dengan ratusan ribu blog di dalamnya. Satu buah blog memiliki 11 tabel MySQL, jadi bisa dihitung berapa juta jumlah tabel yang ada di situs WordPress.com.

Solusi mysqldump got error 1016

Export database MySQL dilakukan tabel per tabel dimulai dari tabel urutan pertama. Untuk menghindari data corrupt, maka setiap mengekspor sebuah tabel, maka tabel yang bersangkutan akan dikunci (di-lock) agar mysql tidak bisa menulis ke tabel tersebut selama proses ekspor berlangsung. « Lock » akan dibuka ketika mysql selesai mengekspor, lalu berganti me-« lock » tabel selanjutnya dalam database untuk proses ekspor.

Proses « lock » yang gagal akan menyebabkan export database terhenti di tengah jalan. Salah satu solusinya adalah dengan memberi opsi

--lock-tables=false

pada command mysqldump untuk melewati proses table locking.

mysqldump --lock-tables=false -u db_user -p database_with_thousand_tables > database.sql

Pada MySQL versi lama (klo gak salah di bawah MySQL 5), opsi –lock-tables=false adalah –lock-tables=off, jadi perintahnya adalah

mysqldump --lock-tables=off -u db_user -p database_with_thousand_tables > database.sql

Insya Allah, sembuh!