শাটডাউন মাইএসকিএল করার সর্বাপেক্ষা সহজ উপায় এটি চালানো সহজ simply
mysqladmin -uroot -p -h127.0.0.1 --protocol=tcp shutdown
এখানে কেন:
Mysql পরিষেবা ফাইল ( /etc/init.d/mysql
) সকেট ফাইলের উপস্থিতির উপর নির্ভর করে। Orতিহাসিকভাবে বলতে গেলে, মাইএসকিউএল ৪.০-তে ফিরে যেতে সকেট ফাইলটি কখনও কখনও অনভিজ্ঞভাবে অদৃশ্য হয়ে যায়। এটি service mysql stop
কাজ করা থেকে একটি মানকে বাধা দেয় ।
বলা বাহুল্য নয়
mysqladmin -uroot -p -h127.0.0.1 shutdown
কারণ টিএসসিপি / আইপি স্পষ্টভাবে সক্ষম না root@127.0.0.1
করা root@localhost
হলে মাইএসকিএলডি কোনও ব্যবহারকারীকে আসবে । ডিফল্টরূপে, mysqld প্রতিরোধের অন্তত পথ বেছে এবং সংযুক্ত করবে root@127.0.0.1
করার root@localhost
সকেট ফাইল মাধ্যমে। তবুও, যদি কোনও সকেট ফাইল root@localhost
না থাকে তবে কখনও সংযুক্ত হবে না।
এমনকি মাইসক্ল্যাডমিনে মাইএসকিউএল ডকুমেন্টেশন এটি বলে:
আপনি যদি ইউনিক্স সকেট ফাইলটি ব্যবহার করে কোনও স্থানীয় সার্ভারের সাথে সংযোগ স্থাপনের সময় মাইসক্ল্যাডমিন শাটডাউনটি সম্পাদন করেন তবে সার্ভারটি সঠিকভাবে বন্ধ হয়ে গেছে কিনা তা নিশ্চিত করার জন্য মাইসক্ল্যাডমিন সার্ভারের প্রক্রিয়া আইডি ফাইলটি সরিয়ে না দেওয়া পর্যন্ত অপেক্ষা করে।
এজন্য টিসিপি / আইপি সক্ষম করা জরুরি:
mysqladmin -uroot -p -h127.0.0.1 --protocol=tcp shutdown
৩০ শে সেপ্টেম্বর, ২০১১ এ, আমি আমার নিজের mysqld_multi
নামে পরিচিত সংস্করণটি স্ক্রিপ্ট করেছি mysqlservice
(আমার পোস্টটি দেখুন: একই হোস্টে একাধিক ঘটনা চালানো )। এটি বিভিন্ন বন্দর থেকে মাইএসকিএলডে সংযোগের জন্য ভার্চুয়াল ইঞ্জিন হিসাবে কাজ করে। আপনার নিজের my.cnf
পছন্দসই পরামিতিগুলি নিয়ে আসতে হবে bring সেই স্ক্রিপ্টে, আমি এই জাতীয় শাটডাউন জারি করি:
stop() {
${ECHO} -n $"Stopping ${PROGNAME}"
${MYSQLD_STOP}
ATTEMPTS=0
STOPPING_MYSQLD=1
MINUTES_TO_TRY=10
(( TICKS_TO_TRY = MINUTES_TO_TRY*240 ))
while [ ${STOPPING_MYSQLD} -eq 1 ]
do
${ECHO} -n "."
${SLEEP} 0.25
MYSQLD_HAS_BEEN_SHUTDOWN=`${TAIL} ${MYSQL_ERROR_LOG} | ${GREP} -c "Shutdown complete$"`
(( ATTEMPTS++ ))
if [ ${ATTEMPTS} -eq ${TICKS_TO_TRY} ] ; then STOPPING_MYSQLD=0 ; fi
if [ ${MYSQLD_HAS_BEEN_SHUTDOWN} -eq 1 ] ; then STOPPING_MYSQLD=2 ; fi
done
${ECHO}
if [ ${STOPPING_MYSQLD} -eq 2 ]
then
${ECHO} "Stopped ${PROGNAME}"
else
${TAIL} -30 ${MYSQL_ERROR_LOG}
fi
}
তবে কী ${MYSQLD_STOP}
?
MYSQL_CONN="-uroot -p<rootpassword> -P${MYSQLD_PORT} -h127.0.0.1 --protocol=tcp"
MYSQLD_STOP="${MYSQLADMIN} ${MYSQL_CONN} shutdown"
আমি 127.0.0.1
এবং আমি একটি স্পষ্টত বন্দর লক্ষ করুন । এইভাবে, আমি কোনও সকেট ফাইলে নির্ভর করি না।
স্তব্ধ হয়ে mysqladmin --protocol=tcp shtudown
থাকলে আমি সবসময় মাইএসকিএল বন্ধ করার উপযুক্ত বিকল্প হিসাবে ব্যবহার করেছি service mysql stop
। এরকম kill -9
উপর mysqld
এবং mysqld_safe
গত রিসর্ট গত মাসের শেষ করা উচিত। (হ্যাঁ, আমি গত তিনবার বলেছি)।
অনেক সময়, মাইএসকিএলডি কোনও সতর্কতা ছাড়াই mysql.sock মুছে ফেলেছে। অন্যান্য লোকেরাও বছরের পর বছর ধরে এই সমস্যাটি নিয়েছিলেন:
উপসংহার
গোপনটি ঠিক যেমনটি আমি বলেছি: টিসিপি / আইপি ( ) এবং ইস্যু করে মাইএসক্ল্যাডমিন ব্যবহার করে মাইএসকিউএলে সংযুক্ত করুন । এই কাজ করা হয়েছে কারণ হরতাল বিশেষাধিকার হয় প্রামাণ হরতালের একচ্ছত্র উদ্দেশ্যে নয়। লিনাক্স সার্ভারে মাইএসকিএলডি বন্ধ করার সময় আমি যখন আমার উইন্ডোজ মেশিন থেকে রিমোট শাটডাউন দিতে সক্ষম হয়েছি তখন এটি আমার কাজের দিন কয়েকবার বাঁচিয়েছে।--protocol=tcp
shutdown
mysql.user
আপডেট 2013-03-06 22:48 EST
আপনি যদি শাটডাউন চলাকালীন কী ঘটছে তা নিয়ে চিন্তিত হয়ে থাকেন তবে শাটডাউন সময়টি কীভাবে চালিত হবে এবং যেভাবে ডেটা ডিস্কে প্রবাহিত হবে তা বিশেষভাবে যদি আপনার বাফার পুলে প্রচুর InnoDB ডেটা থাকে
পরামর্শ # 1
আপনার যদি প্রচুর নোংরা পৃষ্ঠাগুলি থাকে তবে আপনি ইনোডাব_ম্যাক্স_ডাল্টি_পৃষ্ঠাগুলি_পৃষ্ঠাটি 0 তে কমিয়ে দিতে পারেন :
SET GLOBAL innodb_max_dirty_pages_pct = 0;
শাটডাউনের প্রায় 15-30 মিনিট আগে এটি সেট করুন। এটি ডিস্কে লেখার জন্য কমপক্ষে সম্ভাব্য নোংরা পৃষ্ঠাগুলি মাইএসকিএলডি দেবে।
পরামর্শ # 2
ডিফল্টরূপে, ইনোডব_ফেস_শুটডাউন হয় ১। এই বিকল্পের জন্য তিনটি মান রয়েছে
- 0: ইনোডিবি বন্ধ করার আগে একটি ধীর শটডাউন, একটি পুরোপুরিজ এবং একটি ইনসার্ট বাফার মার্জ করে।
- 1: ইনোডিবি এই অপারেশনগুলিকে শাটডাউন এড়িয়ে দেয়, এটি একটি প্রক্রিয়া একটি দ্রুত শাটডাউন হিসাবে পরিচিত।
- 2: InnoDB তার লগগুলি ফ্লাশ করে এবং শীতল বন্ধ করে দেয়, যেন মাইএসকিউএল ক্র্যাশ হয়ে গেছে; কোনও প্রতিশ্রুতিবদ্ধ লেনদেন হারিয়ে যায় না, তবে ক্র্যাশ পুনরুদ্ধার অপারেশন পরবর্তী প্রারম্ভিকালে আরও বেশি সময় নেয়।
ডকুমেন্টেশন আরও বলে:
ধীর এই শাটডাউনটি কয়েক মিনিট সময় নিতে পারে এমনকি এমন কয়েক ঘন্টা এমনকি কয়েক ঘন্টা সময় নিতে পারে যেখানে পর্যাপ্ত পরিমাণে ডেটা বাফার হয়। মাইএসকিউএল প্রধান রিলিজগুলির মধ্যে আপগ্রেড বা ডাউনগ্রেড করার আগে ধীর শটডাউন প্রযুক্তিটি ব্যবহার করুন, যাতে আপগ্রেড প্রক্রিয়া ফাইলের ফর্ম্যাট আপডেট করে তবে সমস্ত ডেটা ফাইল সম্পূর্ণ প্রস্তুত থাকে।
ডেটা দুর্নীতির ঝুঁকিতে থাকলে নিরঙ্কুশতম দ্রুততম শাটডাউন পেতে জরুরি বা সমস্যা সমাধানের পরিস্থিতিতে ইনোডাব_ফেস_শুটডাউন = 2 ব্যবহার করুন।
ইনোডাব_ম্যাক্স_ডার্টি_পেজ_প্যাক্ট এবং ইনোডাব_ফেষ্ট_শুটডাউন এর জন্য ডিফল্ট বেশিরভাগ ক্ষেত্রে ঠিক হওয়া উচিত।
tmpwatch
এটির সাথে এটির সাথে মুছে ফেলা সমস্ত কিছু/tmp
তার কনফিগার থ্রেশহোল্ডের চেয়ে কিছু সময়ের চেয়ে পুরানো থাকে।