"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > قم بترحيل قاعدة بيانات MySQL المحلية الخاصة بك إلى AWS RDS

قم بترحيل قاعدة بيانات MySQL المحلية الخاصة بك إلى AWS RDS

تم النشر بتاريخ 2024-11-04
تصفح:294

في هذا المنشور، سأشارك الخطوات التفصيلية لترحيل البيانات في قاعدة بيانات MySQL المحلية الخاصة بك إلى المثيلات التي تم إنشاؤها حديثًا على AWS RDS مع MySQL.

خلفية

لقد عملت في مشروع متكامل في عام 2023 حيث تعاملت يدويًا مع عمليات نشر الإنتاج لقاعدة البيانات الخاصة بي والواجهة الخلفية لـ AWS. في وقت سابق من هذا العام، قمت بإغلاق جميع البنية التحتية لأنني كنت أتراكم الكثير من التكاليف الشهرية مع قاعدة البيانات (لا بفضل الإفراط في التزويد).

الآن، نتقدم سريعًا إلى هذا الشهر وما زال لدي الكثير من أرصدة AWS (امتيازات كوني منشئ المجتمع) والتي من المقرر أن تنتهي صلاحيتها بحلول نهاية العام. لقد حاولت استعادة مشروعي مرة أخرى فقط لأدرك أن الأمر لن يكون سهلاً كما كنت أعتقد.

أولاً، لم أقم بإنشاء لقطة بشكل صحيح يمكنني استخدامها لاستعادة بيانات الإنتاج وظللت أتلقى أخطاء في الوصول. تم تذكيري أيضًا بمدى صعوبة عملية النشر بأكملها، وكيف أنني لم أوثق أيًا من الخطوات التي اتخذتها (كما أنني لم أتذكرها).

لقد كان هذا درسًا مستفادًا، لذلك أقوم هذه المرة بتوثيق العملية برمتها. تماشيًا مع أحد الأقوال في دورة Udemy التي لم أنتهي منها أبدًا:

'عليك أن تعرف كيفية تنفيذ المهمة يدويًا قبل الشروع في تنفيذها تلقائيًا'.

ومن ثم، سأشارك أولاً الخطوات التي اتخذتها لتنفيذ الترحيل يدويًا، وفي المنشور التالي، سأكتب نصوصًا برمجية لتوفير البنية التحتية باستخدام Terraform وأيضًا تفريغ البيانات المحلية في قاعدة البيانات البعيدة بعد النجاح يطلق.

يعد هذا أيضًا جزءًا من مشروعي المستمر الذي تم تعيينه ذاتيًا لمعرفة المزيد حول CI/CD من خلال إنشاء مسار لأتمتة النشر الكامل للمشروع.

أ) الخطوات اليدوية

1. قم بإنشاء مثيل قاعدة بيانات جديد على Amazon RDS

هذه المرة، كنت أكثر تعمدًا وعمليًا فيما يتعلق بالتكوين. على الرغم من أنه كان "نشرًا للإنتاج"، إلا أنني مازلت أختار ما يُرجح أنه أرخص تكاليف التشغيل نظرًا لأنه ليس منتجًا حيًا فعليًا (وأثر هذا أيضًا على بعض خيارات الأمان التي اخترت عدم إضافتها).

لقد قمت بتلخيص الخيارات التي اخترتها في معالج "إنشاء قاعدة بيانات" أدناه:

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)

التكاليف الشهرية المقدرة:

Migrate Your Local MySQL Database to AWS RDS

2. اتصل بمثيل RDS محليًا

بعد إطلاق المثيل بنجاح، استخدم عميل mysql للاتصال بالمثيل. يفترض هذا أن خادم MySQL الخاص بك قد تم تثبيته وتشغيله.

البدء في استخدام MySQL
عميل MySQL

ستحتاج أيضًا إلى نقطة نهاية المثيل، واسم المستخدم وكلمة المرور اللذين حددتهما في إعدادات بيانات الاعتماد، لتشغيل هذا الأمر:

mysql -h sample_endpoint.rds.amazonaws.com -u username_sample -p

ملاحظة: كان من الممكن إنشاء المثيل الخاص بك باستخدام القواعد الواردة والصادرة الصحيحة لمجموعات أمان VPC المحددة.

ومع ذلك، إذا واجهت أخطاء في الاتصال، فتأكد من تضمين عنوان IP الخاص بك في المصدر المسموح به للقواعد الواردة. لقد واجهت مشكلة مماثلة عندما قمت بإنشاء المثيل في موقع محدد باستخدام عنوان IP الخاص به، وعندما حاولت الاتصال بعنوان IP مختلف في موقع آخر، انتهت مهلة الاتصال.

[اختياري] إنشاء قاعدة البيانات الخاصة بك
إذا تخطيت خطوة التكوين الإضافي أثناء إنشاء المثيل، فيمكنك إنشاء واحد في هذه الخطوة:

CREATE DATABASE sample_db;

3. استيراد البيانات من قاعدة البيانات المحلية الخاصة بك

للقيام بذلك، تحتاج أولاً إلى استخدام الأمر mysqldump لتصدير المخطط والبيانات في قاعدة البيانات المحلية الخاصة بك إلى ملف تفريغ .sql:

mysqldump -u root -p local_db_name > sample_dump.sql

ملاحظة: إذا واجهت أخطاء أثناء محاولة التصدير، فراجع سؤالي حول Stack Overflow وأيضًا إجابة قد تحل بعض المشكلات المحتملة.

بعد ذلك، استخدم الأمر mysql لاستيراد ملف التفريغ إلى مثيل RDS الخاص بك:

mysql -h sample_endpoint.rds.amazonaws.com -u username_sample -p 
sample_db 



4. [اختياري] اتصل بمثيل RDS الخاص بك عبر MySQL Workbench

تأكد من قدرتك على الاتصال بالمثيل دون مشاكل، وتحقق من المخطط والبيانات داخل قاعدة البيانات للتأكد من أنه تم استيرادها أيضًا بشكل صحيح.

غير قادر على الاتصال؟

  • تأكد من تكوين إعدادات الوصول العامة بشكل صحيح، أو
  • استخدم مثيل EC2 للاتصال بشكل آمن بقاعدة البيانات وتشغيل أوامر SQL الخاصة بك من خلال المثيل. تأكد من أن مثيل EC2 موجود أيضًا داخل VPC حيث يوجد مثيل RDS.

التالي سيكون:

  • النشر إلى App Runner باستخدام بيانات اعتماد قاعدة البيانات المطلوبة من هذا المنشور (والوصول الضروري إلى البنية التحتية)،
  • البرمجة النصية باستخدام Terraform بدلاً من ذلك، و
  • إنشاء مسار CI/CD لتحديث تحديثات الواجهة الخلفية والواجهة الأمامية المستقبلية.
بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/aws-builders/migrate-your-local-mysql-database-to-aws-rds-3609?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3