راهکارها
بازارچه ابری
Arvan Docs

مستندات فنی

دسترسی به تمامی مستندات محصولات ابر آروان

Categories
Close
دسته‌بندی‌های سایت مشاهده دسته‌بندی‌ها بستن دسته‌بندی‌ها





مشاهده همه دسته‌ها All Categories

بازیابی یک پایگاه داده MySQL برای Ruby

Time To Read ۲ دقیقه
Date ۲۷ شهریور ۱۴۰۰

نکته: ما در حال تغییر ساختار فایل و پیکربندی بسیاری از استک‌های بیتنامی هستیم. در نتیجه‌ی این تغییرات، مسیر فایل‌هایی که در این آموزش به آن‌ها اشاره شده ممکن است تغییر کند که این موضوع هم بستگی دارد که استک بیتنامی شما از پکیج‌های سیستمی نیتیو لینوکس استفاده می‌کند (رویکرد A) یا نسخه‌ای self-contained است (رویکرد B). برای تشخیص نوع استک‌تان و انتخاب رویکرد متناسب، دستور زیر را اجرا کنید:

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

خروجی این دستور نشان می‌دهد که اپلیکیشن شما از کدام رویکرد (A یا B) استفاده می‌کند و به شما کمک می‌کند که در این راهنما مسیر، پیکربندی و دستورات متناسب با آن را انتخاب کنید. برای اطلاعات بیشتر راجع به این تغییرات، به بخش سوالات رایج مراجعه کنید.

پیش از تلاش برای بازیابی یک پایگاه داده‌ی MySQL، باید در فایل لاگ MySQL خطای مورد نظر را دقیقا بررسی کنید. برای بررسی آخرین مدخل‌های فایل لاگ MySQL، دستور زیر را اجرا کنید:

  • برای اپلیکیشن‌هایی که رویکرد A را دنبال می‌کنند (از پکیج‌های سیستمی لینوکس استفاده می‌کنند):
sudo tail -n 100 /opt/bitnami/mysql/logs/mysqld.log
  • برای اپلیکیشن‌هایی که رویکرد B را دنبال می‌کنند (اپلیکیشن‌های Self-contained):
sudo tail -n 100 /opt/bitnami/mysql/data/mysqld.log

در این مثال فرض کنید که خطای زیر در فایل لاگ ثبت شده باشد:

برای رفع این مشکل مراحل زیر را طی کنید:

  • پایگاه داده‌ی MySQL به صورت پیش‌فرض برای استفاده از موتور InnoDB پیکربندی شده است. با اضافه کردن innodb_force_recovery=1 به فایل پیکربندی اصلی MySQL که می‌توانید آن را در مسیر /opt/bitnami/mysql/etc/my.cnf بیابید، سعی کنید مشکل پایگاه داده را برطرف کنید:
[mysqld]
innodb_force_recovery = 1
  • با دستور زیر پایگاه داده را فعال کنید:
mysqld --skip-grant-tables --user=mysql --skip-external-locking --port=3306 --sock=/opt/bitnami/mysql/tmp/mysql.sock
  • یک صفحه‌ی فرمان جدید باز کرده و سعی کنید به پایگاه داده لاگین کنید:
mysql -u root -p
  • در این مثال خطا به جدول mysql.user مربوط است. این دستورات را وارد کنید:
mysql> use mysql;
mysql> repair table user;
mysql> check table user;
mysql> exit;

اگر جدول بازیابی شده باشد، باید در برابر وضعیت جدول mysql.user کلمه‌ی OK را مشاهده کنید. فراموش نکنید که گزینه‌ی innodb_force_recovery را از فایل my.cnf حذف و سرور MySQL را دوباره راه‌اندازی کنید.

sudo /opt/bitnami/ctlscript.sh restart mysql

اگر با خطای دیگری روبه‌رو شدید که نتوانستید آن را برطرف کنید، می‌توانید از ما کمک بخواهید: http://community.bitnami.com