Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

ERROR 1005 (HY000):Tidak dapat membuat tabel x (errno:-1)

Ini adalah pertanyaan lama, tetapi saya baru mendapatkannya hari ini, dan menemukan solusinya (dan ya dengan errno =-1).

Tabel kami adalah InnoDB dan dibuat dan dihancurkan setiap beberapa jam. Kami baru saja memulai server budak untuk mengikuti master itu. Kami juga menggunakan opsi "innodb_file_per_table".

Kesalahan hanya akan terjadi pada slave, bukan pada master. Masalahnya adalah kami baru-baru ini menyinkronkan slave tersebut ke master menggunakan rsync beberapa jam sebelumnya.

Rsync menyalin file tabel, tetapi kemudian dihapus oleh master sementara itu, karena itu adalah tabel sementara. Oleh karena itu, file .idb ada di slave, tetapi tidak lagi di master.

Ketika master mengirim permintaan untuk membuat tabel, budak tidak bisa karena file sudah ada di sana. MySQL tidak menyadari bahwa ada tabel karena metadata mengatakan tidak ada tabel di sana. Saya berasumsi MySQL mencoba membuat file, tetapi karena ada di sana, file tersebut gagal.

Dalam kasus saya, solusinya adalah menghapus file .idb di folder lain (tentu saja dengan salinan cadangan terlebih dahulu).

Setelah itu, database akan mengizinkan kita untuk membuat tabel, dan slave kemudian akan mengikuti master lagi

Cara yang lebih baik untuk melakukan rsync adalah dengan menggunakan opsi --delete untuk menghapus file basi yang hilang dari master.

Bagaimanapun - Anda mungkin tidak memiliki situasi yang persis seperti yang saya jelaskan, tetapi itu bisa saja file basi yang ditinggalkan di sana karena suatu alasan atau lainnya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ulangi hingga kode sandi unik

  2. Memasukkan waktu ke database mysql di java

  3. Bagaimana cara menggunakan Django dengan tabel database readonly lama dengan kunci primer komposit?

  4. GABUNG vs. DI MANA:Mengapa dua kueri yang memperoleh hasil identik menunjukkan perbedaan kinerja 3-4 kali lipat?

  5. Deteksi jika tanggal dalam waktu musim panas di MySql