PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کمک برای repair دیتابیس حجیم با ssh



nikportal
February 22nd, 2015, 10:56
سلام
دیتابیس من حدود 1 گیگ هست مشکلی پیش اومده باید repair کنم با دستوراتی که تو همین انجمن هست انجام میدم ولی چون حجمش زیاده خطا میده سرورم centos 6 و دایرکت ادمین دارم

دستور زیر را پس از service mysqld stop اجرا کردم


cd /var/lib/mysql
myisamchk -r dbname.MYI

خطای زیر را داد


error: File 'admin_sepid.MYI' doesn't exist

hamid.soltani92
February 22nd, 2015, 11:00
سلام و عرض ادب.
لطفا متن ارور رو به همراه دستوری که وارد می‌کنید قرار بدید.

Yas-Host
February 22nd, 2015, 11:07
خطا را اعلام کنید

max allowed packet رو در my.cnf به ارتقا دهید.

nikportal
February 22nd, 2015, 11:13
وقتی این دستور را میزنم


mysqlcheck -uda_admin -p`grep "^passwd=" /usr/local/directadmin/conf/mysql.conf | cut -d= -f2` --auto-repair --all-databases ; mysqlcheck -uda_admin -p`grep "^passwd=" /usr/local/directadmin/conf/mysql.conf | cut -d= -f2` --optimize --all-databases
پس از اتمام خطای too mony connection میده

تو همین انجمن اینجا (http://www.webhostingtalk.ir/f55/83717/)خوندم که این دستور برای دیتابیس های بالاتر از 500 مگابایت کاربرد نداره گفته بودن که باید اول دیتابیس را خاموش و از دستور زیر استفاده کنید



cd /var/lib/mysql
myisamchk -r dbname.MYI


وقتی این دستور را اجرا میکنم خطای زیر را میده


error: File 'admin_sepid.MYI' doesn't exist

تو پوشه mysql هم ls را میزنم فایلی با پسوند .MYI وجود نداره پس خطای بالا همینو میگه

pejman_view
February 23rd, 2015, 01:26
سلام

این دستور رو بزن:

mysqlcheck --repair --all-databases


برای too mony connection هم بایستی اینارو افزایش بدی:
max_connections =
max_user_connections =

یادت نره پشتش سروریس mysql رو ریستارت کنی:
service mysqld restart

موفق باشی

- - - Updated - - -

ضمناً یادم رفت بگم من چندبار این روش رو تست کردم برای دیتابیس 3 گیگی کمتر از 3 ثانیه اصلاح کرد

takpar7
February 23rd, 2015, 03:36
سلام
گفتید که :

دستور زیر را پس از service mysqld stop اجرا کردم

من وقتی دیتابیس استاپ بوده امتحان کردم همیشه ارور داده

دیتابیس رو استارت بکنید و کد زیر رو بزنید



mysqlcheck -uda_admin -p`grep "^passwd=" /usr/local/directadmin/conf/mysql.conf | cut -d= -f2` --auto-repair --all-databases ; mysqlcheck -uda_admin -p`grep "^passwd=" /usr/local/directadmin/conf/mysql.conf | cut -d= -f2` --optimize --all-databases

nikportal
February 25th, 2015, 11:02
ممنون از پاسخ همه
دستورات زیر را اجرا کردم دیتابیس تعمیر شد

این دستور را زدم رفتم پوشه مای اس کیو ال


cd /var/lib/mysql

بعد دستور ls زدم محتویات این پوشه را دیدم دیتابیس ها تو این پوشه لیست شده بود. دیتابیس admin_db1 , admin_db2 و... مثلا میخواستم دیتابیس admin_db2 تعمیر کنم دستور زیر را زدم رفتم تو پوشه این دیتابیس

cd admin_db2

بعد باز ls رو زدم جدول های این دیتابیس لیست شد مثلا posts.MYI یا users.MYI ] چون میدونستم جدول posts مشکل داره پس دستوز زیر را زدم و جدول به راحتی تعمیر شد

myisamchk -r posts.MYI

اگه دستور بالا خطا داد از دستور زیر استفاده میکنیم

myisamchk -r -v -f posts.MYI

a970
February 26th, 2015, 02:08
سلام
خب شما سرویس mysql را نباید stop کنید !
ابتدا باید max connection را طبق آموزشی که دوستمون داد افزایش بدید سپس mysql ریستارت کنید بعد اقدام به repair کنید