Dalam siaran ini, saya akan berkongsi langkah terperinci untuk memindahkan data dalam pangkalan data MySQL setempat anda kepada kejadian yang baru dibuat pada AWS RDS dengan MySQL.
Saya bekerja pada projek tindanan penuh pada tahun 2023 di mana saya mengendalikan penggunaan pengeluaran pangkalan data saya dan bahagian belakang ke AWS secara manual. Awal tahun ini, saya menutup semua infrastruktur kerana saya mengumpul terlalu banyak kos bulanan dengan pangkalan data (tidak, terima kasih kepada saya terlebih peruntukan).
Sekarang, cepat ke bulan ini dan saya masih mempunyai banyak kredit AWS (faedah menjadi Pembina Komuniti) yang akan tamat tempoh menjelang akhir tahun. Saya cuba memulihkan projek saya hanya untuk menyedari ia tidak semudah yang saya sangkakan.
Pertama, saya tidak mencipta syot kilat dengan betul yang boleh saya gunakan untuk memulihkan data pengeluaran dan terus mendapat ralat akses. Saya juga diingatkan tentang betapa manualnya keseluruhan penggunaan dan bagaimana saya tidak mendokumentasikan mana-mana langkah yang saya ambil (saya juga tidak mengingatinya).
Itu adalah pengajaran yang dipelajari, jadi kali ini, saya mendokumentasikan keseluruhan proses. Selaras dengan salah satu pepatah dalam kursus Udemy yang saya tidak pernah habiskan:
'Anda perlu tahu untuk melaksanakan tugas secara manual sebelum meneruskan untuk mengautomasikannya'.
Oleh itu, saya mula-mula akan berkongsi langkah-langkah yang saya ambil untuk melaksanakan migrasi secara manual, dan dalam catatan berikut, saya akan menulis skrip untuk menyediakan infrastruktur dengan Terraform dan juga membuang data setempat ke dalam db jauh selepas berjaya pelancaran.
Ini juga merupakan sebahagian daripada projek berterusan saya sendiri untuk mengetahui lebih lanjut tentang CI/CD dengan membina saluran paip untuk mengautomasikan keseluruhan penggunaan projek.
Kali ini, saya lebih berniat dan praktikal dengan konfigurasi. Walaupun ia adalah 'pengeluaran pengeluaran', saya masih memilih kos pengendalian yang paling murah kerana ia bukan produk langsung sebenar (ini juga mempengaruhi beberapa pilihan keselamatan yang saya pilih untuk tidak tambah).
Saya telah meringkaskan pilihan yang saya pilih dalam wizard 'Buat Pangkalan Data' di bawah:
AWS Region: eu-west-2 Database creation method: Standard Create Engine type/edition/version: MySQL/MySQL Community/MySQL 8.0.35 Use case template: Free Tier Credential settings: define these as you'd prefer DB instance class: db.t3.micro Storage: gp2, 20GB, auto-scaling enabled up to 100GB Connectivity: - define these for your specific use-case; I chose not to use an EC2 - Public access: Yes, because I wanted to connect to the database locally via MySQL Workbench Database authentication: Password auth Additional configuration: - I created one database from here; but you can also leave it blank and create one when you get access via Workbench Others: - use default options or modify for your use-case Deletion protection: - enabled (to dissuade myself from deleting easily like the last time)
Anggaran kos bulanan:
Selepas contoh berjaya dilancarkan, gunakan klien mysql untuk menyambung ke contoh. Ini menganggap anda telah memasang dan menjalankan pelayan MySQL anda.
Bermula dengan MySQL
Pelanggan MySQL
Anda juga memerlukan titik akhir contoh, dan nama pengguna serta kata laluan yang anda tentukan dalam tetapan bukti kelayakan, untuk menjalankan arahan ini:
mysql -h sample_endpoint.rds.amazonaws.com -u username_sample -p
Nota: Contoh anda akan dibuat dengan peraturan masuk dan keluar yang betul untuk kumpulan keselamatan VPC yang dipilih.
Walau bagaimanapun, jika anda menghadapi ralat semasa menyambung, sahkan bahawa alamat IP anda disertakan dalam sumber yang dibenarkan untuk peraturan masuk. Saya menghadapi isu yang sama apabila saya mencipta tika di lokasi tertentu dengan alamat IPnya dan apabila saya cuba menyambung dengan alamat IP lain di lokasi lain, sambungan tamat masa.
[Pilihan] Cipta pangkalan data anda
Jika anda melangkau langkah konfigurasi Tambahan semasa pembuatan contoh, anda boleh membuat satu pada langkah ini:
CREATE DATABASE sample_db;
Untuk melakukan ini, anda perlu menggunakan arahan mysqldump terlebih dahulu untuk mengeksport skema dan data dalam db tempatan anda ke fail .sql dump:
mysqldump -u root -p local_db_name > sample_dump.sql
Nota: Jika anda menghadapi ralat semasa cuba mengeksport, lihat soalan saya di Stack Overflow dan juga jawapan yang boleh menyelesaikan beberapa isu yang mungkin berlaku.
Selepas itu, gunakan arahan mysql untuk mengimport fail dump ke contoh RDS anda:
mysql -h sample_endpoint.rds.amazonaws.com -u username_sample -p sample_db < sample_dump.sql
Sahkan bahawa anda boleh menyambung ke tika tanpa masalah dan semak skema dan data di dalam pangkalan data untuk mengesahkan bahawa ia juga telah diimport dengan betul.
Seterusnya ialah:
Atas ialah kandungan terperinci Pindahkan Pangkalan Data MySQL Setempat Anda ke AWS RDS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!