Jika Anda ingin berbagi database dengan beberapa pengguna lain, menempatkan direktori data di OneDrive tidak akan berfungsi.
MySQL menyimpan data dalam file di bawah datadir, itu benar. Mereka disimpan dalam file yang disebut tablespaces yang memiliki .ibd
ekstensi.
Tetapi saat Anda melakukan operasi INSERT/UPDATE/DELETE, data disimpan sementara di memori dan di log transaksi (ib_logfile*
. MySQL harus melakukan koordinasi yang halus antara ini, untuk menyimpan data dengan cara yang tahan lama, sambil memastikan kinerja yang baik. Ini bekerja dengan baik, tetapi hanya jika Server MySQL adalah satu-satunya proses penulisan ke file.
OneDrive tidak berkoordinasi dengan MySQL sama sekali. Ini akan secara berkala memeriksa file yang telah berubah sejak terakhir kali melakukan sinkronisasi. Interval OneDrive memeriksa file kira-kira setiap 10 menit, dan ini tidak dapat dikonfigurasi.
OneDrive dapat memilih untuk menyinkronkan file sesaat setelah Anda melakukan beberapa operasi INSERT/UPDATE/DELETE, dan data diubah dalam RAM, tetapi belum diperbarui di file tablespace pada disk.
Setelah Anda melakukan perubahan, itu juga harus disimpan dengan aman di log transaksi, meskipun tidak diperbarui di tablespace. Tetapi jika teman Anda menerima file dalam keadaan ini (log transaksi berisi perubahan yang tidak ada di tablespace), mereka dapat merekonstruksi data dari RAM Anda yang tidak mereka dapatkan. Ini disebut Pemulihan kerusakan InnoDB . Server MySQL melakukan jika secara otomatis jika dijalankan dan menemukan log transaksi berisi perubahan yang tidak ada di tablespace. Ini mengasumsikan Anda tiba-tiba melakukan boot ulang dan kehilangan apa yang ada di RAM.
Jika teman Anda mencoba untuk terus menjalankan Server MySQL mereka, membaca direktori data yang secara bersamaan diperbarui oleh OneDrive mereka, pada dasarnya akan menimpa file mereka dan MySQL akan menjadi bingung. Itu hanya memeriksa untuk melihat apakah itu harus melakukan pemulihan kerusakan saat Server MySQL dimulai. Jadi jika file berubah dengan cara yang tidak terduga saat MySQL Server sudah berjalan, itu hanya akan menyimpulkan bahwa hard drive Anda telah rusak. Ini mungkin akan melaporkan kesalahan fatal dan mematikan MySQL.
Juga jika teman Anda mencoba membuat perubahan mereka sendiri ke database, perubahan mereka akan bertentangan dengan pembaruan dari OneDrive. Kemudian upaya mereka untuk menimpa file pada akhirnya akan disinkronkan ke arah yang berlawanan melalui OneDrive, dan pada akhirnya akan merusak database Anda juga. Ini akan terjadi tanpa peringatan pada interval 10 menit, setiap kali OneDrive memilih untuk melakukan sinkronisasi file.
Jadi saya khawatir OneDrive bukan solusi untuk berbagi database Anda.
Alternatif yang memiliki peluang untuk berhasil antara lain:
-
Hosting satu instance Server MySQL di situs web yang Anda semua bagikan, dan memberi Anda masing-masing klien yang dapat menggunakan database. Klien gratis yang populer adalah phpMyAdmin . Dengan begitu hanya akan ada satu instance MySQL Server, satu datadir, meskipun Anda masing-masing akan menjadi klien bersamaan yang membaca dan menulis data. Ini adalah solusi paling sederhana, kemungkinan besar akan berhasil.
-
Mengekspor data dari instans Server MySQL Anda menggunakan mysqldump secara berkala, dan meletakkan file ekspor di OneDrive, atau mengirimkannya ke teman Anda melalui email atau cara lainnya. Kemudian mereka harus mengimpor data itu ke Server MySQL mereka secara manual. Ini akan menimpa setiap perubahan yang telah mereka lakukan pada database mereka, tetapi tidak akan muncul sebagai korupsi. Jika mereka ingin mengirim perubahan kembali kepada Anda, mereka dapat melakukan operasi serupa:mengekspor database mereka, meletakkan file dump di OneDrive, lalu Anda akan mendapatkan file dump mereka dan mengimpornya ke instance Server MySQL Anda, menimpa semua perubahan yang Anda miliki dilakukan secara lokal sejak terakhir kali Anda mengirim ekspor ke teman Anda.
-
Gunakan add-on MySQL untuk replikasi sinkron multi-server, seperti Replikasi Grup InnoDB atau Kluster Percona XtraDB . Tapi ini mungkin terlalu rumit untuk Anda siapkan jika Anda seorang pemula dengan MySQL.