zartosht
October 23rd, 2013, 10:40
درود به همگی ،چند روش برای optimize و repair کردن دیتابیس های موجود در سرور لینوکس و directadmin برای شما عزیزان آماده کرده ام . منبع اصلی اموزش ها iranserver.com میباشد.
آموزش دایرکت ادمین .
برای optimize و repair تمامی دیتابیس های موجود در سرور میتوانید تنها با استفاده از دستور زیر بدون نیاز به وارد کردن user و password سرویس mysql خود ، به صروت خودکار شروع به repair و optimize تمامی دیتابیس های موجود میکند .
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
برای دریافت نام کاربری و رمز عبور اصلی mysql سرور خود میتوانید ار دستور زیر استفاده کنید :
cat /usr/local/directadmin/conf/mysql.conf
برای repair تمامی دیتابیس های موجود در سرور از دستور :
mysqlcheck -u da_admin -p --auto-repair --all-database
رای optimize تمامی دیتابیس های موجود در سرور از دستور :
mysqlcheck -u root -p --optimize --all-database
توجه داشته باشید 2 دستور بالا نیاز به رمز عبور اصلی mysql دارد که در دستورات بالا نحوه به دست آوردن ان را توضیح دادم .
برای repair و optimize تنها یک دیتابیس مورد نظر میتوانید از دستور زیر استفاده کنید .
mysqlcheck -u da_admin -p --auto-repair NAMEDB
mysqlcheck -u da_admin -p --optimize DBNAME
چگونه تعمیر table دیتابیس از طریق SSH
توجه داشته باشید Mysql server باید در حال اجرا باشد.
با استفاده از دستور زیر می توانید وضعیت آن را بررسی نمایید:
/etc/init.d/mysql status
اکنون با استفاده از دستور زیر به دیتابیس login میکنیم.
mysql> mysql –u databaseusername –p database password databasename
اکنون دیتابیس مورد نظر که مشکل دارد را بصورت زیر انتخاب می نماییم:
mysql> use databasename;
حال با استفاده از دستور زیر بررسی می نماییم که آیا table مورد نظر مشکل دارد یا خیر:
mysql> check table tablename;
اگر پس از اجرای دستور مقدار NULL به عنوان خروجی قرار گرفت یعنی table خراب است در غیر اینصورت مشکلی ندارد.
در صورتی که table مشکل داشت برای تعمیر آن از دستور زیر استفاده می نماییم:
mysql> repair table tablename;
اکنون table شما تعمیر میشود.
همچنین میتوانید با استفاده از دستورات زیر در محیط اصلی ssh اعمال optimize , check و repair را یکباره روی کل table ها انجام دهید.
برای repair :
mysqlcheck -u username -p --auto-repair dbanem
برای optimize
mysqlcheck -u username -p --optimize dbanem
برای check
mysqlcheck -u username -p --check dbanem
..............................
mysqlcheck -u da_admin -p --auto-repair --all-database
آموزش دایرکت ادمین .
برای optimize و repair تمامی دیتابیس های موجود در سرور میتوانید تنها با استفاده از دستور زیر بدون نیاز به وارد کردن user و password سرویس mysql خود ، به صروت خودکار شروع به repair و optimize تمامی دیتابیس های موجود میکند .
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
برای دریافت نام کاربری و رمز عبور اصلی mysql سرور خود میتوانید ار دستور زیر استفاده کنید :
cat /usr/local/directadmin/conf/mysql.conf
برای repair تمامی دیتابیس های موجود در سرور از دستور :
mysqlcheck -u da_admin -p --auto-repair --all-database
رای optimize تمامی دیتابیس های موجود در سرور از دستور :
mysqlcheck -u root -p --optimize --all-database
توجه داشته باشید 2 دستور بالا نیاز به رمز عبور اصلی mysql دارد که در دستورات بالا نحوه به دست آوردن ان را توضیح دادم .
برای repair و optimize تنها یک دیتابیس مورد نظر میتوانید از دستور زیر استفاده کنید .
mysqlcheck -u da_admin -p --auto-repair NAMEDB
mysqlcheck -u da_admin -p --optimize DBNAME
چگونه تعمیر table دیتابیس از طریق SSH
توجه داشته باشید Mysql server باید در حال اجرا باشد.
با استفاده از دستور زیر می توانید وضعیت آن را بررسی نمایید:
/etc/init.d/mysql status
اکنون با استفاده از دستور زیر به دیتابیس login میکنیم.
mysql> mysql –u databaseusername –p database password databasename
اکنون دیتابیس مورد نظر که مشکل دارد را بصورت زیر انتخاب می نماییم:
mysql> use databasename;
حال با استفاده از دستور زیر بررسی می نماییم که آیا table مورد نظر مشکل دارد یا خیر:
mysql> check table tablename;
اگر پس از اجرای دستور مقدار NULL به عنوان خروجی قرار گرفت یعنی table خراب است در غیر اینصورت مشکلی ندارد.
در صورتی که table مشکل داشت برای تعمیر آن از دستور زیر استفاده می نماییم:
mysql> repair table tablename;
اکنون table شما تعمیر میشود.
همچنین میتوانید با استفاده از دستورات زیر در محیط اصلی ssh اعمال optimize , check و repair را یکباره روی کل table ها انجام دهید.
برای repair :
mysqlcheck -u username -p --auto-repair dbanem
برای optimize
mysqlcheck -u username -p --optimize dbanem
برای check
mysqlcheck -u username -p --check dbanem
..............................
mysqlcheck -u da_admin -p --auto-repair --all-database