در این مطلب با نحوه نصب 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” بگردید. سپس دکمه سمت راست موس را بزنید و آدرس لینک را کپی کنید. همچنین می‌توانید عدد مربوط به نسخه را در فرمان‌های زیر تغییر دهید.

برای این منظور، نسخه موردنظرتان را پیدا کرده و مطابق تصویر، آن را در لینک بروزرسانی کنید:

نمونه نسخه MySQL برای نصب در لینوکس CentOS 7

نمونه نسخه MySQL برای نصب در لینوکس CentOS 7

 


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 در سایت مقایسه کنید:

مقایسه مقدار MD5 در سایت

مقایسه مقدار 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 آشنا شدیم. در هر صورت، اقدامات امنیتی بیشتری برای هر سروری موردنیاز خواهد بود.