mysql_install_db那些 MySQL সার্ভার অর্থাৎ mysqld ব্যবহার করার জন্য প্রস্তুত হওয়ার আগে যা যা ইনিশিয়ালাইজেশন টাস্ক করতে হয় সেগুলো হ্যান্ডেল করে। এটি MySQL ডেটা ডিরেক্টরি ইনিশিয়ালাইজ করে এবং 거기에 থাকা সিস্টেম টেবিলগুলো তৈরি করে। এটি সিস্টেম টেবিলস্পেস এবং InnoDB টেবিল ম্যানেজ করতে যা যেগুলো ডেটা স্ট্রাকচার আপডেট থাকে সেগুলো ইনিশিয়ালাইজ করে।
সিকিউর-বাই-ডিফল্ট ডিপ্লয়মেন্ট
mysql_install_db-এর বর্তমান ভার্সনগুলো একটি MySQL ডিপ্লয়মেন্ট তৈরি করে যা ডিফল্টভাবে সিকিউর। এর নিচের বৈশিষ্ট্যগুলো রয়েছে:
'root'@'localhost' নামে একক অ্যাডমিনিস্ট্রেটিভ অ্যাকাউন্ট তৈরি হয় যেটিতে র্যান্ডমলি জেনারেটেড পাসওয়ার্ড থাকে এবং এক্সপায়ারড হিসেবে মার্ক করা থাকে।
কোনো অ্যানোনিমাস ইউজার অ্যাকাউন্ট তৈরি হয় না।
সব ইউজার দ্বারা অ্যাক্সেসযোগ্য কোনো টেস্ট ডাটাবেস তৈরি হয় না।
--admin-xxxঅপশনগুলো অ্যাডমিনিস্ট্রেটিভ অ্যাকাউন্টের বৈশিষ্ট্য নিয়ন্ত্রণ করতে উপলব্ধ।--random-password-fileঅপশন র্যান্ডম পাসওয়ার্ড কোথায় লেখা হবে তা নিয়ন্ত্রণ করতে উপলব্ধ।--insecureঅপশন র্যান্ডম পাসওয়ার্ড জেনারেশন দমন করতে উপলব্ধ।
যদি mysql_install_db র্যান্ডম অ্যাডমিনিস্ট্রেটিভ পাসওয়ার্ড জেনারেট করতে পারে, তবে এটি পাসওয়ার্ডটি একটি ফাইলে লিখে ফাইল নামটিও প্রদর্শন করে।
আহ্বান সিন্ট্যাক্স
আহ্বান সিন্ট্যাক্স বুঝি:
MySQL ইনস্টলেশন ডিরেক্টরিতে লোকেশন পরিবর্তন করে নিচের সিন্ট্যাক্স ব্যবহার করুন:
shell> bin/mysql_install_db --datadir=path/to/datadir [other_options]
--datadir অপশন বাধ্যতামূলক। mysql_install_db ডেটা ডিরেক্টরি তৈরি করে, যা আগে থেকেই অস্তিত্বে থাকা উচিত নয়। যদি ডেটা ডিরেক্টরি আগে থেকেই থাকে, তবে এটি একটি আপগ্রেড অপারেশন, ইনস্টল অপারেশন নয়। সেক্ষেত্রে mysql_upgrade চালানো উচিত, mysql_install_db নয়। যদি ডেটা ডিরেক্টরি না থাকে কিন্তু mysql_install_db ফেল করে, তবে আংশিকভাবে তৈরি ডেটা ডিরেক্টরি মুছে ফেলার পর আবার mysql_install_db চালাতে হবে।
কারণ MySQL সার্ভার mysqld পরে চালানোর সময় ডেটা ডিরেক্টরি এক্সেস করতে হবে, তাই ব্যবহারকারীকে либо mysqld চালানোর জন্য ব্যবহৃত সিস্টেম অ্যাকাউন্ট থেকে mysql_install_db চালাতে হবে, অথবা রুট হিসেবে চালাতে হবে এবং --user অপশন দিয়ে সেই ইউজার নাম নির্দিষ্ট করতে হবে যের অধীনে mysqld চলে।