نحوه حذف پایگاه داده MySQL و مدیریت خطاهای پایگاه داده در cPanel & WHM

این مقاله نحوه حذف دستی پایگاه داده MySQL، فعال‌سازی Slow Query Log، رفع خطای Password Authentication Failed در PostgreSQL، بازیابی دسترسی کاربران به پایگاه داده با restoregrants، و نصب یا به‌روزرسانی PostgreSQL در سرورهای cPanel & WHM را توضیح می‌دهد.

MySQL DatabaseDelete PostgreSQLError Fix restoregrants cPanel

~3 دقیقه مطالعه • بروزرسانی ۲۹ بهمن ۱۴۰۴

1. حذف پایگاه داده MySQL


برای حذف دستی یک پایگاه داده MySQL در سرور cPanel & WHM مراحل زیر را انجام دهید:


  1. به WHM با کاربر root وارد شوید.
  2. به بخش SQL Services رفته و روی phpMyAdmin کلیک کنید.
  3. در ستون سمت چپ، پایگاه داده موردنظر را انتخاب کنید.
  4. در بالای صفحه روی Operations کلیک کنید.
  5. در بخش Remove database گزینه Drop the database (DROP) را انتخاب کنید.
  6. برای تأیید حذف، روی OK کلیک کنید.
  7. اگر پایگاه داده متعلق به یک کاربر cPanel بود، وارد بخش Manage My Databases شوید و ورودی پایگاه داده را حذف کنید.

هشدار: حذف دستی پایگاه داده بدون حذف ورودی آن در cPanel باعث خراب شدن database map و ایجاد خطا در بکاپ‌ها می‌شود.


2. فعال‌سازی Slow Query Log در MySQL یا MariaDB


برای فعال‌سازی Slow Query Log مراحل زیر را انجام دهید:


  1. از طریق SSH با کاربر root وارد شوید.
  2. فایل my.cnf را ویرایش کرده و کد زیر را در بخش mysqld اضافه کنید:

slow_query_log = 1
slow-query_log_file = /var/log/mysql-slow.log
long_query_time = 2

برای نسخه‌های مختلف MySQL و MariaDB ممکن است نام متغیرها متفاوت باشد.


ایجاد فایل لاگ


touch /var/log/mysql-slow.log
chown mysql:mysql /var/log/mysql-slow.log

ری‌استارت سرویس


/usr/local/cpanel/scripts/restartsrv_mysql

تحلیل لاگ


mysqldumpslow -a /var/log/mysql-slow.log

3. رفع خطای Password Authentication Failed در PostgreSQL


اگر خطای Password authentication failed دریافت می‌کنید، مراحل زیر را انجام دهید:


بررسی فایل pgpass


فایل /root/.pgpass باید شامل فرمت زیر باشد:


::*:postgres:PASSWORD

ویرایش pg_hba.conf


  1. Tailwatch را متوقف کنید:

touch /etc/tailwatchddisable
killall tailwatchd

  1. فایل pg_hba.conf را ویرایش کرده و مقدار md5 را به trust تغییر دهید.
  2. سرویس PostgreSQL را ری‌استارت کنید:

/usr/local/cpanel/scripts/restartsrv_postgresql

تغییر رمز PostgreSQL


postgres=# alter user postgres with encrypted password 'new_pass';
postgres=# \q

  1. مقدار trust را دوباره به md5 تغییر دهید.
  2. Tailwatch را فعال کنید:

rm /etc/tailwatchddisable
/usr/local/cpanel/scripts/restartsrv_tailwatchd

4. بازیابی دسترسی کاربر به پایگاه داده با restoregrants


برای بازیابی دسترسی کاربر به پایگاه داده از اسکریپت restoregrants استفاده کنید:


/usr/local/cpanel/bin/restoregrants --cpuser=$cpuser --db=$type --dbuser=$dbuser
/usr/local/cpanel/bin/restoregrants --cpuser=$cpuser --db=$type --all

متغیرها:


  • $cpuser: نام کاربری cPanel
  • $dbuser: کاربر پایگاه داده
  • $type: نوع پایگاه داده (mysql یا pg)

اگر restoregrants کار نکرد


رمز حساب cPanel را تغییر دهید تا دسترسی‌ها بازسازی شوند.


5. نصب یا به‌روزرسانی PostgreSQL


قبل از نصب یا آپدیت، از پایگاه داده‌ها بکاپ بگیرید:


pg_dumpall -U postgres > db.out

توقف سرویس و انتقال دایرکتوری


systemctl stop postgresql.service
mv /var/lib/pgsql /var/lib/directory_file_name

6. نصب یا آپدیت PostgreSQL


/usr/local/cpanel/scripts/installpostgres

سپس وارد WHM شوید و از بخش Configure PostgreSQL تنظیمات را انجام دهید.


ایمپورت دیتابیس‌ها


psql -U postgres dbname < dumpfile.sql

7. بازگردانی نسخه قبلی PostgreSQL


systemctl stop postgresql.service
mv /var/lib/pgsql /var/lib/directory_file_name
mv /var/lib/pgsql.old /var/lib/pgsql
systemctl restart postgresql.service

برای اطلاعات بیشتر به وب‌سایت PostgreSQL مراجعه کنید.


نوشته و پژوهش شده توسط دکتر شاهین صیامی