در این مطلب با نحوه نصب MySQL در لینوکس CentOS 7 آشنا خواهید شد. MySQL یگ سیستم مدیریت پایگاه داده به صورت متن باز است و معمولاً به عنوان بخشی از بسته محبوب LEMP نصب میشود. منظور از LEMP مجموعه لینوکس، Nginx، MySQL/MariaDB و PHP/Python/Perl است. این ابزار از یک پایگاه داده منظقی و زبان پرسمان سازمانیافته یا SQL برای مدیریت دادههایش استفاده میکند.
لینوکس CentOS 7 به صورت پیشفرض استفاده از MariaDB را ترجیح میدهد. MariaDB نسخهای از MySQL محسوب میشود که توسط توسعهدهندگان اولیه MySQL ارائه شده و به عنوان جایگزینی برای MySQL طراحی شده است. در مورد تفاوتهای این دو باید گفت که MariaDB بهطور کلی عملکرد نامحسوستری نسبت به MySQL دارد.
این آموزش به شما نحوه نصب MySQL را بر روی سرور لینوکس CentOS 7 نشان میدهد.
پیشنیازها
چیزهایی که برای دنبالکردن این آموزش به آنها نیاز دارید:
یک لینوکس CentOS 7 با یک کاربر غیر روت و دسترسی sudo.
گام اول) نصب MySQL
همانطور که در ابتدا اشاره شد، فرمان Yum در نصب MySQL، در واقع MariaDB را برای شما نصب خواهد کرد. برای نصب MySQL حتماً بایستی سری به انجمن MySQL منبع Yum سری بزنید؛ جایی که بستههای لازم MySQL در دسترس شما خواهند بود.
در یک مرورگر وب از آدرس زیر دیدن کنید:
https://dev.mysql.com/downloads/repo/yum/
به خاطر داشته باشید که لینکهای دریافت دائمی مستقیماً به فایلها هدایت نمیشوند. بلکه شما وارد صفحه ثانویهای میشود که نیاز به ثبتنام یا وارد شدن به حسابتان دارد. اگر علاقهای به ایجاد یک حساب کاربری ندارید، به دنبال عبارت “No thanks, just start my download” بگردید. سپس دکمه سمت راست موس را بزنید و آدرس لینک را کپی کنید. همچنین میتوانید عدد مربوط به نسخه را در فرمانهای زیر تغییر دهید.
برای این منظور، نسخه موردنظرتان را پیدا کرده و مطابق تصویر، آن را در لینک بروزرسانی کنید:
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
وقتی فایل rpm ذخیره شد، فرمان md5sum را اجرا میکنیم؛ فرمانی که برای بررسی وضعیت فایل دریافتی و مقایسه MD5 آن با مقدار ثبتشده در سایت به کار میرود.
md5sum mysql57-community-release-el7-9.noarch.rpm
Output 1a29601dc380ef2c7bc25e2a0e25d31e mysql57-community-release-el7-9.noarch.rpm
این خروجی را با مقدار متناظر MD5 در سایت مقایسه کنید:
حالا به این نتیجه رسیدیم که فایل معیوب نیست و یا اینکه تغییر پیدا نکرده است. بنابراین، آن را نصب میکنیم:
sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
با اجرای این فرمان دو منبع جدید MySQL yum اضافه میشوند. از این دو منبع برای نصب سرور MySQL استفاده خواهیم کرد:
sudo yum install mysql-server
برای تأیید ادامه کار، باید کلید y را فشار دهید. از آنجایی که به تازگی این بسته را نصب کردهایم، با پیغام تأیید کلید GPG آن نیز روبرو خواهیم شد. بر این اساس، کلید y را بزنید تا این کلید را دریافت کرده و عملیات نصب به پایان برسد.
گام دوم) راهاندازی MySQL
این ابزار را با استفاده از فرمان زیر اجرا میکنیم:
sudo systemctl start mysqld
البته فرمان systemctl تمام خروجیهای فرمانهای مدیریتی را نمایش نمیدهد. بنابراین، برای اطمینان از صحت انجام کار، از فرمان زیر استفاده میکنیم:
sudo systemctl status mysqld
اگر MySQL بهدرستی اجرا شود، خروجی میبایست شامل Active: active (running) باشد و آخرین خط نیز چیزی شبیه به این خواهد بود:
Dec 01 19:02:20 centos-512mb-sfo2-02 systemd[1]: Started MySQL Server.
به خاطر داشته باشید که MySQL به صورت اتوماتیک در هنگام نصب، برای راهاندازی در شروع به کار سیستم تنظیم میشود. در همین حال، امکان تغییر این رفتار پیشفرض با استفاده از فرمان زیر وجود خواهد داشت:
sudo systemctl disable mysqld
در طول فرآیند نصب یک کلمه عبور موقتی برای کاربر روت MySQL تعریف میشود. برای پیدا کردن آن در mysqld.log میتوانید از فرمان زیر کمک بگیرید:
sudo grep 'temporary password' /var/log/mysqld.log
Output 2016-12-01T00:22:31.416107Z 1 [Note] A temporary password is generated for root@localhost: mqRfBU_3Xk
این کلمه عبور را حتماً یادداشت کنید؛ چرا که در گام بعدی برای امنیت نصب به آن نیاز خواهید داشت. البته در این زمان شما مجبور میشوید که آن را تغییر دهید. قالب کلی کلمه عبور به این صورت است که حتماً بایستی شامل ۱۲ کاراکتر باشد. ضمن اینکه حتماً دارای یک حرف بزرگ، یک حرف کوچک، یک عدد و یک کاراکتر ویژه باشد.
گام سوم) تنظیمات MySQL
MySQL شامل یک اسکریپت امنیتی برای تغییر بخشی از گزینههای پیشفرض است؛ گزینههایی مانند ورود کاربران روت و کاربران نمونه. برای اجرای این اسکریپت میتوانید از فرمان زیر استفاده کنید:
sudo mysql_secure_installation
این فرمان کلمه عبور پیشفرض روت را برای شما نمایش میدهد. به محض اینکه آن را وارد کنید، از شما خواسته میشود که آن را تغییر دهید.
Output The existing password for the user account root has expired. Please set a new password. New password:
یک کلمه عبور جدید وارد کنید. این کلمه عبور حداقل باید شامل یک حرف بزرگ، یک حرف کوچک، یک عدد و یک کاراکتر ویژه باشد. وقتی از شما خواسته شد، دوباره آن را وارد کنید.
در نتیجه، میزان امنتی پسوردی که انتخاب کردهاید، برای شما نمایش داده میشود. سپس بلافاصله از شما خواسته میشود که آن را دوباره تغییر دهید. از آنجایی که همین الان آن را تغییر دادهاید، میتوانید گزینه No را انتخاب کنید.
Output Estimated strength of the password: 100 Change the password for root ? (Press y|Y for Yes, any other key for No) :
پس از اینکه درخواست تغییر دوباره کلمه عبور را رد کردید، کلید y را فشار دهید. سپس برای تمام سؤالات بعدی کلید Enter را بزنید. در این حالت، تمام مواردی مانند ورود کاربران ناشناخته، عدماجازه به ورود ریموت کاربران روت، حذف پایگاه داده آزمایشی و بازیابی جدول دسترسی تنظیم میشوند.
حالا که تنظیمات نصب به پایان رسیده، نوبت به تست و آزمایش آن میرسد.
گام چهارم) آزمایش MySQL
تأیید نصب MySQL در CentOS 7 و دریافت اطلاعات در مورد آن با استفاده از ابزار mysqladmin انجام میشود. ابزار mysqladmin یک کلاینت است که به شما اجازه اجرای فرمانهای مدیریتی را میدهد. برای ایجاد ارتباط روت با MySQL، درخواست کلمه عبور و نمایش نسخه از فرمان زیر استفاده کنید:
mysqladmin -u root -p version
در نتیجه، خروجی شما میبایست ظاهری شبیه به این داشته باشد:
mysqladmin Ver 8.42 Distrib 5.7.16, for Linux on x86_64 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved . Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.7.16 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 2 min 17 sec Threads: 1 Questions: 6 Slow queries: 0 Opens: 107 Flush tables: 1 Open tables: 100 Queries per second avg: 0.043
این به این معناست که نصب شما به صورت کاملاً موفقیتآمیز انجام شده است.
جمعبندی
در این آموزش، با نحوه نصب و تنظیم MySQL در لینوکس CentOS 7 آشنا شدیم. در هر صورت، اقدامات امنیتی بیشتری برای هر سروری موردنیاز خواهد بود.