Saya menggunakan mac teman saya untuk sementara sampai saya sendiri sedang diservis. Jadi awal minggu ini, saya menghapus akun pengguna saya di mac-nya yang memiliki banyak database yang saya butuhkan. Saya telah mencadangkan sebagian besar data pengguna sebelum menghapus akun itu, tetapi segera saya menyadari bahwa saya melewatkan pencadangan basis data. Hal yang beruntung dan mungkin alasannya adalah bahwa direktori data database umumnya berada di luar akun pengguna. Dalam artikel ini, saya akan menyebutkan poin-poin tentang bagaimana saya mendapatkan kembali data DB ini menggunakan akun pengguna teman saya (atau Anda bahkan dapat membuat yang baru dan melakukan langkah yang sama).
- Pastikan mariadb masih terpasang dengan menjalankan
brew install mariadb
.Saya menemukan bahwa itu tersedia tetapi homebrew tidak memiliki akses ke direktori instal karena dibuat dari akun pengguna yang berbeda. Jadi pertama-tama kita pulihkan ini dengan menjalankan:
sudo chown -R $(whoami) /usr/local/bin
Jika perintah melemparkan dump kesalahan yang menunjukkan folder mana yang tidak dapat diaksesnya, Anda dapat menjalankan perintah yang sama untuk setiap folder. Saya juga menjalankan brew upgrade mariadb
untuk tetap upto data dengan instalasi mariadb yang lebih baru (walaupun saya tidak menyarankan menjalankan ini secara umum sampai Anda telah mencadangkan database).
- Selanjutnya Anda harus mencari tahu direktori data mana yang digunakan mariadb dan menjalankan chown juga. Ini dapat dilakukan dengan menjalankan:
brew services list
Ini akan memberikan daftar layanan yang sedang berjalan dan konfigurasi yang dijalankannya. Cukup buka konfigurasi tugas mariadb dan lihat parameter --datadir
dalam XML--harus berada di dalam blok argumen. Dalam kasus saya, ini adalah --datadir=/usr/local/var/mysql
. Sekarang salin jalur itu dan jalankan:
sudo chown -R $(whoami) /usr/local/var/mysql
Pada titik ini, Anda mungkin bertanya-tanya, mengapa tidak menyalin direktori data ke mac sendiri dan kemudian membuka database secara langsung? Masalahnya di sini adalah bahwa folder tersebut hanya memiliki .ibd dan .frm file yang benar-benar tidak dapat diimpor oleh mySQL. Jadi saya harus menjalankan server mysql lagi dengan dir data ini dan kemudian mengekspornya.
- Selanjutnya, saya harus menghentikan server mysql yang sedang berjalan untuk memastikan bahwa saya dapat memulai mysql dengan lancar. Saya melakukan ini dengan menjalankan:
brew services stop mariadb
ps aux | grep mysql
Perintah terakhir adalah memeriksa bahwa tidak ada instance mysql lain yang berjalan. Jika perintah mengembalikan semua proses yang menjalankan mysql, maka proses tersebut harus dimatikan menggunakan perintah kill -9 atau yang lain, buka Monitor Aktivitas, gunakan pencarian untuk memfilter mysql dan paksa matikan secara manual.
Sekarang, instance mysql baru dapat dimulai dengan menggunakan:
brew services start mariadb
Atau, Anda bahkan dapat memanggil program yang ditemukan di folder bin yang disebutkan dalam file XML dari konfigurasi layanan homebrew yaitu mengambil string program pertama dan mengganti mysqld_safe
ke mysql.server start
dan jalankan perintah. Dalam kasus saya, saya melakukan ini dengan menjalankan:
/usr/local/opt/mariadb/bin/mysql.server start
Itu akan mengembalikan SUKSES! jika layanan dimulai dengan sukses. Jika tidak, Anda harus memeriksa log kesalahan (ada di /usr/local/var/mysql
folder untuk saya) untuk mencari tahu apa yang salah dan menyelesaikannya dengan beberapa googling.
Dan cukup banyak, Anda sekarang dapat membuat cadangan database seperti yang biasa Anda lakukan. Saya melakukan ini dengan menjalankan:
mysql -u root -p<password>
show databases
Dan ini akan memberikan daftar semua database. Dan kemudian jalankan perintah backup untuk setiap database yang ingin Anda backup sebagai:
mysqldump -u root -p<password> dbname > dbname.sql
Dan itu cukup banyak bagaimana hal itu dilakukan. Dan saya mengirimkan database ke laptop saya sendiri dan selesai.