جابجا کردن محل ذخیره سازی دیتابیس MYSQL/MariaDB

1 Star2 Stars3 Stars4 Stars5 Stars 8 امتیاز
Loading…

بسم الله الرحمن الرحیم

شاید برای شما هم پیش آمده باشد که به دلیل کمبود فضا در یک پارتیشن سیستم عامل نیاز به جابجایی محل ذخیره سازی دیتاهای دیتابیس MySQL/MariaDB داشته باشید.مثلا با خطایی مشابه خطای زیر:

[] DISKCRITICAL blocks ⛔️: Mount Point “/” (): 46.8 GB/49.98 GB - 93.654388%



در این مطلب به صورت خلاصه و تیتر وار مراحل این جابجایی خواهد آم.
هدف انتقال از مسیر / به /home می باشد، سیستم عامل هم Centos و مدیر دیتابیس هم mariadb ، اما برای MySQL هم همین مراحل قابل استفاده است.

مرحله اول:
پشتیبان گیری از اطلاعات دیتابیس جهت احتیاط

مرحله دوم:
متوقف کردن سرویس دیتابیس و یک تنظیم :

sudo systemctl stop mariadb

فایل mariadb.service را ادیت کرده(دستور: systemctl edit mariadb ) و مقدار زیر را تصحیح میکنیم:

[Service]
ProtectHome = true

==>
[Service]
ProtectHome = false

نکته : اگر از سی پنل استفاده می کنید سیستم بررسی سرویس ها را موقتا برای دیتابیس کنسل کنید تا دوباره آن را شروع به کار نکند:

whmapi1 configureservice service=mysql enabled=1 monitored=0

بعد از اتمام همه مراحل با دستور زیر سرویس را فعال کنید:

whmapi1 configureservice service=mysql enabled=1 monitored=1




مرحله سوم:
جابجایی دیتاها به مسیر جدید و تغییر نام پوشه قبلی(بعدا که مطمئن از انتقال اطلاعات شدید میتوانید پاک کنید):


mkdir /home/new_mysql_datadir
chown -R mysql:mysql /home/new_mysql_datadir
sudo rsync -av /var/lib/mysql /home/new_mysql_datadir
sudo mv /var/lib/mysql /var/lib/mysql.bak

مرحله چهارم:
ساخت سیمبلیک لینک مسیر اصلی به مسیر جدید جهت جلوگیری از اختلال در برنامه های وابسته:

ln -s /home/new_mysql_datadir/mysql /var/lib/mysql 

این دستور هم زده بشه:

sudo chcon -R systemu:objectr:mysqlddbt:s0 /home/new_mysql_datadir/mysql

مرحله پنجم:
شناساندن مسیر جدید به MySQL/MariaDB :
فایل /etc/my.cnf را ادیت کرده و مقدار datadir را در مکان مناسب طبق متن زیر اضافه می کنیم:

    [mysqld]
    datadir=/home/new_mysql_datadir/mysql

مرحله آخر:
شروع مجدد کار MySQL/MariaDB:

sudo systemctl start mariadb
sudo systemctl status mariadb

پاک کردن اطلاعات قبلی:

درصورتی که از صحت عملیات مطمئن بودید با دستور زیر میتونید اطلاعات قبلی رو پاک کنید که فضا ازاد شه:

rm -rf /var/lib/mysql.bak



ارسال تیکت