مشکلات MySQL tables

اگر سیستم شما به اجبار متوقف شد یا قسمت mySQL tablesشما دچار مشکل شده است,چندین روش وجود دارد که بتونید اطلاعات tables خود را برگردانید.به یاد داشته باشید,برای freeBSDیا Debianلطفا تمامی instances ها را جایگزین homeکنید.به طور مثال برای شما: /var/lib/mysqlبه /home/mysqlتبدیل خواهد شد.

۱)از دایرکت ادمین بخواهید تا کارتان را برایتان انجام بدهد.

دایرکت ادمین ها در خودشان فرمان تعمیر را دارند که از تنظیمات sql استفاده میکند.

برای استفاده از آنها به مسیر زیر بروید:User Level -> MySQL Management ->بر روی قسمت مربع کلیک کرده آنرا روشن کنید و گزینه repairرا بزنید.

۲)از myisamchkاستفاده کنید و پایگاه های اطلاعات خود را تعمیر کنید.

اگر شما پایگاه های اطلاعات الوده شده زیادی را دارید,و میخواهید همه ی آن ها را در یک مرتبه تعمیر کنید,در shhبه عنوان rootوارد شوید و مرحله های زیر را انجام دهید

۱)mysqldرا خاموش کنید.

Admin Level -> Services Monitor -> mysqld: stop

خاموش کردن mysqld از طریق دایرکت ادمین بسیار مهم است.در صورتی که از طریق دایرکت ادمین اینکار را نکرده باشید,وضعیت قرار گرفته نخواهد شد,و dataskqدوباره از اول شروع خواهد شد که برای شما میتواند مشکل ساز باشد.

۲)یک نسخه پشتیبان تهیه کنید.

cd /home
cp -Rp mysql mysql.backup

۳)tables ها را تعمیر کنید.

/usr/bin/myisamchk --silent --force --fast --update-state \
--key_buffer_size=64M --sort_buffer_size=64M \
--read_buffer_size=1M --write_buffer_size=1M \
*/*.MYI

به یاد داشته باشید,بر روی FreeBSDیا Debian باید از مسیر زیر استفاده کنید.

/usr/local/mysql/bin/myisamchk

۴)دوباره mySQLرا اجرا کنید.

Admin Level -> Services Monitor -> mysqld: start.


تبدیل کردن MySQL5.5به MariaDB5.5

اگر شما در حال اجرای mySQL5.5هستید و میخواهید که آن را به نسخه mariaDB5.5تعغیر دهید(که در ادامه به شما اجازه به بالا بردن نسخه میدهد)روش گفته شده زیر را به ترتیب انجام دهید.

۱)قبل از انجام هرکاری از تمامی کاربران دایرکت ادمین و .sqlهای خود نسخه پشتیبان کامل تهیه کنید.مطمعن شوید که پشتیبان های گرفته شده کاملا سالم هستند و برای بازرگردانی آماده هستند,تا اگر اشتباهی رخ داد بتوانید از آنها استفاده کنید.برای ساختن پشتیبان های .sqlفرمان زیر را وارد کنید:

cd /usr/local/directadmin/custombuild
./build set mysql_backup yes
./build mysql_backup
#wait for the backup to complete, then rename it to a unique folder so it's not overwritten:
mv mysql_backups mysql_backups.`date +%F`
./build set mysql_backup no

۲)در قدم دوم شما باید از پوشه /var/lib/mysqlیک کپی بوجود بیاورید(/home/mysql on Debian/FreeBSD)

ما اول باید mysqldرا کاملا متوقف کنیم,تا از احتمال خرابی فایل های کپی شده شما تا جای امکان دوری کزده باشیم.

perl -pi -e 's/mysqld=ON/mysqld=OFF/' /usr/local/directadmin/data/admin/services.status
service mysqld stop
cd /var/lib
cp -Rp mysql mysql.conversion_backup

۳)در واقع عمل swap of rpmsباید به صورت دستی انجام شود.rpmsهای mySQLرا حذف کنید و کد زیر را وارد کرده:

rpm -e `rpm -qa | grep MySQL`

۴)در وضعیت الان ما اطلاعات لازم برای نسخه ۵٫۵را داریم و مکشلی نیست ولی هیچ کتابخانه یا فایل های باینری نصب نشده است,برای نصب mariaDBمیتوانید کد دستوری زیر را وارد کنید:

./build set mariadb 5.5
./build set mysql_inst mariadb
./build mariadb

۵)کد زیر را وارد کنید:

./build php n

۶)برای بروزرسانی های اینده,بهتر است که قابلیت بروزرسانی را دوباره فعال کنید همینطور mysqld monitoring را دوباره فعال کنید,برای انجام آن کد دستوری زیر را وارد کنید:

perl -pi -e 's/mysqld=OFF/mysqld=ON/' /usr/local/directadmin/data/admin/services.status
./build set mysql_backup yes

مطمعن شوید که همه چیز کاملا به درستی درحال پردازش است.


downgrade از mySQL5.6به ۵٫۵

متاسفانه mysql در بروزرسانی کرد به نسخه های جدید همیشه شانس بیشتری نسبت به downgrade به نسخه های قدیمی تر داشته.همانطور که میدانید ممکن است نسخه های قدیمی تر فایل های ساخته شده توسط نسخه جدید را پشتیبانی نکند,از همین رو downgrade کردن آن امری حساس میباشد.هدف اصلی از اراعه این اموزش,بیشتر برای کاربران debian 7 میباشد,که قصد ندارند از myqsl5.6استفاده کنند.در این مثال ما نسخه ۵٫۵٫۳۵ را downgrade خواهیم کرد اما شما به جای نسخه گفته شده میتوانید,نسخه دلخواه خودتان را قرار دهید.

این اموزش برای یک شروع از نو میباشد به این منظور که هیچ اطلاعاتی اضافه نشده است.اگر که تا الان شما به آن اطلاعاتی در پایگاه اطلاعاتی خود اضافه کرده اید بهتر است قبل از شروع کار از آنها نسخه پشتیبان تهیه کنید و بعد از اتمام downgrade ان هارا به دوباره بازگردانی کنید.
برای گرفتن پشتیبان از ابزار زیر استفاده کنید:

User Level -> Create/Restore Backups

راحت ترین راه استفاده از مسیری است که بالا به شما گفته شد,همچنین استفاده از این روش به شما اجازه میدهد که نام کاربری و رمز های خود را هم بازگردانی کنید و حتی به شما اجازه میدهد ۲ پایگاه اطلاعات برای تنظیمات پشتیبانی و بازگردانی خود انتخاب کنید,تا دیگر اطلاعات مربوط به کاربران دیگر کمتر مورد دخالت قرار بگیرد.به دلیل متفاوت بودن فرمت ها mysqldumps/restores که متعلق به mysqlهستند,پایگاه اطلاعات آن ها را شناسایی نمیکند.

به یاد داشته باشید که این روش چندان مناسب کاستوم بیلد نیست,زیرا این روش یک پاکسازی کامل را انجام میدهد,و یک نصب کاملا تازه از نسخه ۵٫۵را انجام میدهد(و دایرکت ادمین وریشه های اکانت را مشخص میکند)که کاستوم بیلد آن هارا انجام نمیدهد.

۱)در اولین قدم باید نسخه ۵٫۵ را دانلود کنیم,کد زیر را وارد کنید:

cd /usr/local/directadmin/scripts/packages
wget http://files.directadmin.com/services/all/mysql/debian/64-bit/mysql-5.5.35-linux2.6-x86_64.tar.gz

۲)سپس باید به در مورد فایل به تازگی دانلود شده به دایرکت ادمین خبر بدهید تا آن را پیدا کرده و نصبش کند:

/usr/local/directadmin/scripts/files.sh

خط mysql_standardرا پیدا کنید و آن را به فایل جدید تعغیر دهید:

mysql_standard=mysql-5.5.35-linux2.6-x86_64.tar.gz

۳)mysqlقدیمی را پاک کرده و اطلاعاتی که از آن به جا مانده است را پاک کنید.

  • در دایرکت ادمین به Admin Level -> Services Monitor -> mysqld:رفته و مقدار را به stop تعغییر دهید.
  • اطلاعات قدیمی خودتان را از سر راهتان بردارید و مطمعن شوید که برای نصب دوباره اماده است:
rm -f /usr/local/mysql
mv /home/mysql /home/mysql.old
rm -f /tmp/mysql.sock

۴)در قدم بعد آن را نصب کنید,درصورتی که شما سوالی پرسیده شد که مایل به حذف مسیر old /home/mysqlهستید,شما باید yجواب دهید,تا ما از فایل های جدیدی که پشتیبانی نمیشوند استفاده کنیم.

همچنین شما میتوانید مقدار بولد شده در کد زیر که مربوط به رمز عبور میشود را تعغیر دهید و مقدار دلخواهتان آن را تنظیم کنید.

cd /usr/local/directadmin/scripts
./mysql.sh rootpass da_admin daadminpass

۵)بعد از انجام هر گونه تعغیری در نسخه های mySQLبه شما پیشنهاد میکنیم phpرا دوباره اجرا کنید و کد زیر را وارد کنید:

cd /usr/local/directadmin/custombuild
./build php n

۶)برای بروزرسانی های آینده میتوانید از کاستوم بیلد استفاده کنید.حتمن اطمینان حاصل کرده که mysql= valueدر تنظیمات options.confبر روی ۵٫۵تنظیم شده باشد.تا نسخه آن درهمان خط باشد.

۷)اگر شما نیاز دارید که یک new tar.gzبرای mysqlبسازید,میتوانید از گزینه جدید force_mysql_compileاستفاده کنید:

./build set mysql_force_compile yes
./build mysql
امتیاز ما
برای امتیاز به این پست کلیک کنید
[کل: 0 میانگین: 0]

Leave a Reply