بهینه سازی mySQL

۱)همیشه قبل از هر گونه تغییرات در فایل my.cnfیک نسخه پشتیبان کامل از آن تهیه کنید تا در صورت بروز مشکل یا لاین ها اشتباهی آن را جایگزین کنید.

۲)از هرگونه تغییر در innoDBخودآری کنید مگر اینکه به تغییرات در آن به خوبی اشنایی کامل را داشته باشد.بیشتر تنظیمات innoDBباید بدون تعغییر باشد وگرنه تغییرات درآن اطلاعات شما را ممکن است نابود کند.ما به شما پیشنهاد میکنیم در آن تعغیراتی بوجود نیاورید.


centOS:

همراه با mysql(4+5)یک my.cnfپیش فرض به شما داده خواهد شد که به سریعتر شدن mysql کمک خواهد کرد البته در صورتی که رم شما از ۲ گیگابایت بیشتر باشد.

cp -f /usr/share/mysql/my-large.cnf /etc/my.cnf

همچنین یک my-huge.cnfیا یک my-medium.cnfبر روی تنظیمات سختر افزار شما وجود دارد.محتویات این دو فایل my.cnf را جستجو کرده و به دنبال مقادیر مناسبتان بگردید

.پی نوشت۱:تنظیمات log-binبه صورت پیش فرض فعال است.این وضعیت به سرعت مقدار زیادی از فضای دیسک شمارا اشغال خواهد کرد.بهتر است قسمت log-bin را از etc/my.cnf.اگر وجود دارد جدا کنید.

پی نوشت۲:از فایل های قدیمی /etc.my.cnfخود یادداشت برداری کنید.اگر شما innodb_file_per_table=1را دارید,مطمعن شوید my.cnfجدیدی که نصب کرده اید هم همان تنظیمات را داشته باشد.همچنین اگرinnodb_file_per_table=1شما فعال نیست,my.cnfشما هم نباید فعال باشد.اگر my.cnfجدید شما تنظیمات متفاوتی برای innodb_file_per_tableدارد,ممکن است اطلاعات شمارا ناقص یا از بین ببرد.مطمعن شوید قبل از اعمال هرگونه تعغیراتی در my.cnfخود از فایل های .sqlخود پشتیبان کامل را گرفته باشید.


CentOS وMySQL 5.6:

MySQLنصب شده جدید شما ممکن از فایل های .cnfشمارا در خودشان نداشته باشندبه همین خاطر ما فایل های MySQL5.5را جدا کرده ایم و به نظر میرسد بر روی نسخه جدیدترMySQLهم کارایی داشته باشند:

cp /etc/my.cnf /etc/my.cnf.old
wget -O /etc/my.cnf http://files.directadmin.com/services/all/mysql/my-huge-5.5.cnf

MySQL 4.x:

این روش منسوخ شده است و بهتر است از آن استفاده نشود.

اگر که شما بجازی mysql5,mysql4را دارید میتوانید با استفاده از کد زیر در /etc/my.cnfخود استفاده کنید:

vi /etc/my.cnf [ENTER]

کلید iرا فشار بدهید تا به حالت insert mode وارد شوید و کد زیر را ارسال کنید:

[mysqld]
local-infile=0
skip-external-locking
query_cache_limit=1M
query_cache_size=32M
query_cache_type=1
max_connections=500
interactive_timeout=100
wait_timeout=100
connect_timeout=10
thread_cache_size=128
key_buffer_size=16M
join_buffer_size=1M
max_allowed_packet=16M
table_open_cache=1024
sort_buffer_size=2M
read_buffer_size=2M
max_connect_errors=10
myisam_sort_buffer_size=64M
server-id=1

[safe_mysqld]
err-log=/var/log/mysqld.log
open_files_limit=8192

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash
#safe-updates

[isamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[myisamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M
[mysqlhotcopy]
interactive-timeout

کلید ctrl-cرا فشار دهید تا از insert mode خارج شوید.سپس shift-Zرا فشار دهید تا ذخیره شود و خارج شوید و mysqlرا ریستارت کنید:

در redhat:

/sbin/service mysqld restart

درFreeBSD:

/usr/local/etc/rc.d/mysqld restart

بروزرسانی mysql در freeBSD:

در این مثال ما از mysql4.1.14با freeBSD4.*استفاده مکینیم.

دقت کنسید حرکت بین نسخه ۴٫۰٫*به ۴٫۱٫*مشکلات رمز عبور را همراه دارد.

cd /usr/local/directadmin/scripts/packages
wget http://files.directadmin.com/services/freebsd4.8/mysql-standard-4.1.14-unknown-freebsd4.7-i386.tar.gz
cd /usr/local
tar xvzf /usr/local/directadmin/scripts/packages/mysql-standard-4.1.14-unknown-freebsd4.7-i386.tar.gz
ln -s mysql-standard-4.1.14-unknown-freebsd4.7-i386 mysql
cd mysql
rm -rf data
ln -s /home/mysql data
/usr/local/etc/rc.d/mysqld restart

نصب دوباره MySQL:

ما به شما شدیدا
یشنهاد میکنیم قبل از انجام هر گونه عملیاتی یک پشتیبان کامل از DAخود بگیرید تا برای بازرگرداندن آن شمارا دچار مشکلی نکند,و همچنین پشتیبان کاستوم بیلد Mysqlبرای مواقع پیش بینی نشده.امروز ما برای شما هر دو روش جدید و قدیمی را آموزش میدهیم ولی باز هم به شما پیشنهاد میکنیم از روش جدید استفاده کنید زیرا هم سریعتر است هم خطرات کمتری از قبیل کامل به پایان نرسیدن نصب را به همراه ندارد.

روش جدید:کاستوم بیلد۲٫۰ rev2914قابلیتی دارد که خیلی راحت میتوان نسخه تازه ای از mySQL/MariaDBرا شروع کند.
اول برای شما چک خواهد کرد که ایا /var/lib/mysql وجود دارد,در صورت وجود نداشتن برای شما یک شروع تازه را اجرا خواهد کرد.

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

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

۲)حالا نسخه دلخواه خودتان را نصب کنید,برای مثال mariadb10.4یا mysql.

۳)round cube user+dbرا دوباره بسازید:

./build roundcube

۴)اطلاعات .sqlخود را بازرگردانی کنید,کاربران خود را با استفاده از DAبسازید.


روش قدیمی:

اگر MySQLنیاز به نصب دوباره توسط شما دارد یا به دلیلی بار اول هم نصب نشده است,با این اموزش شما میتوانید آن را دوباره نصب کنید,این روش تمامی اطلاعات قدیمی شمارا پاک خواهد کرد,پس اگر اطلاعاتی دارید بهتر است قبل از اجرا کردن این اموزش از آن ها نسخه پشتیبان کامل تهیه کنید و بعدا به صورت دستی آن را اعمال کنید.

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

در اینجا میتوانید رمز خود را به هر مقادیری که دلخواهتان است تعغیر دهید.نصب کننده از mysql=value برای rootpassاستفاده میکند و همینطور adminpass=برای adminpass,همینطور setup.txtممکن از متنی مشابه زیر از شما بپرسد:

It seems as though mysql has already been installed.
The directory /var/lib/mysql has been found.  For the best results, its recommended that this be deleted.
All database data will be lost if you delete it

Do you want to delete it? (y is recommended)? (y,n) :

در جواب آخرین خطی که در بالا میبینید باید کلمه yرا وارد کرده و کلید اینتر را بزنید تا یک شروع تازه به شما داده شود.اگر شما nرا انتخاب کنید,نصب کننده برنامه با شکست مواجه خواهد شد,مگر آنکه اطلاعات فعال شما ورود به سیستم بدون هیچ رمزی را بهشما بدهد ولی بهشما پیشنهاد میکنیم که y را انتخاب کرده.

اگر که نیاز به استفاده از Round Cube دارید بهتر است آن را هم دوباره کنید:

cd /usr/local/directadmin/custombuild
./build roundcube

ادرس my.cnf:

فایل my.cnfسیستم شما در ادرس زیر خواهد بود :

/etc/my.cnf

دایرکت ادمین یک my.cnfدیگر برای شما میسازد اما فقط برای mysqldumpها استفاده میشود در ادرس زیر میتوانید آن را پیدا کنید:

/usr/local/directadmin/conf/my.cnf

از آنجایی که به صورت عادی و معمول دوباره نوشته شده است نباید تعغییری کرده باشد(براساس mysql.confکه در همان ادرس وجود دارد)
غیر از دوفایل my.cnfهیچ فایل دیگر my.cnfنباید هیچ جای دیگر وجود داشته باشد.

فایل های بد رایجا my.cnf:

۱):

/etc/mysql/my.cnf

شما نباید این فایل را داشته باشید همچنین شما نباید اصلا مسیر /etc/mysql directoryرا داشته باشید,زیرا با /etc/my.cnf.ما به مشکل برخواهد خورد.

۲):

/root/.my.cnf

این مسیر نباید وجود داشته زیرا وقتی ما به دنبال mysqldumpهستیم ممکن است این مسیر به اشتباهی انتخاب شود.در فایل های my.cnf شما فقط /usr/local/directadmin/conf/my.cnfباید وجود داشته باشد,همچنین یک مقدار کاربر و رمز عبور فقط باید وجود داشته باشد.هیچگونه فایل my.cnfیا رمز یا کاربری نباید در آن وجود داشته باشد.

امتیاز ما
برای امتیاز به این پست کلیک کنید
[کل: 1 میانگین: 1]

Leave a Reply