آموزش نصب MySQL روی CentOS 8

Avatar
نویسنده: دریا آزادخواه
شنبه 2 مهر 1401
مطالعه: ۱۱ دقیقه ۰ نظر ۱۰۶۶ بازدید

دیتابیس‌ها بخشی جدانشدنی از هر پلتفرم هستند. MySQL یکی از دیتابیس‌های رابطه‌ای پرطرفدار حال‌حاضر است که به‌رایگان در‌اختیار همه قرار دارد. MySQL روی CentOS 8 به‌آسانی نصب می‌شود؛ اما بدون ایمن‌سازی و پیکربندی اولیه نمی‌توان از آن استفاده کرد. اگر این دیتابیس ایمن نشود، استفاده از آن خطرناک است و احتمال هک‌شدن اطلاعات افزایش می‌یابد.

در این مقاله از آموزش سیستم عامل، هر آنچه از نصب تا استفاده از این دیتابیس نیاز دارید، توضیح داده‌ایم: ابتدا دیتابیس MySQL را به‌طورکامل روی سرور نصب و پیکربندی می‌کنیم و در‌ادامه، ایمن‌سازی اولیه را انجام می‌دهیم تا بتوانید با اطمینان کامل از دیتابیس استفاده کنید.

خرید سرور لینوکس با قابلیت نصب MySQL از پارس پک

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

سیستم دیتابیس MySQL چگونه است؟

MySQL سیستمی دیتابیس متن‌باز است که معمولاً به‌عنوان بخشی از پکیج محبوب LEMP، یعنی Linux, Nginx, MySQL/MariaDB, PHP/Python/Perl، استفاده می‌شود. MySQL دیتابیسی رابطه‌ای (Relational) است که داده‌ها را در جداولی متشکل از ستون و ردیف ذخیره می‌کند. شایان ذکر است این سیستم از SQL (مخفف Structured Query Language) برای مدیریت کوئری‌ها استفاده می‌کند.

Mysql چیست؟

آشنایی با ویژگی‌های MySQL

پیش‌نیازها

برای نصب MySQL بر CentOS 8 کافی است سروری با پیکربندی اولیه زیر داشته باشید:

  • سرور مجازی لینوکس یا سرور اختصاصی لینوکس دارای CentOS 8
  • مجهز به یک کاربر non-root با سطح دسترسی مدیریت
  • فایروال با پیکربندی Firewalld

مرحله اول: نصب MySQL

در CentOS 8، پکیج MySQL نسخه ۸ در ریپازیتوری اصلی وجود دارد. دستور زیر را برای نصب پکیج mysql-server به‌همراه تعدادی از دیپندنسی‌های آن اجرا کنید:

sudo dnf install mysql-server

برای تأیید نصب هنگامی‌که از شما درخواست شد، دکمه Y و سپس Enter را بزنید.

خروجی:

. . .
Install  49 Packages

Total download size: 46 M
Installed size: 252 M
Is this ok [y/N]: y

پس از اینکه MySQL با موفقیت نصب شد، برای استفاده از آن باید چند مورد پیکربندی انجام دهید. پکیج نصب‌شده برای اجرا دستور systemd را اجرا می‌کند که آن دستور نیز سرویسی به نام mysqld.service را اجرا می‌کند. برای استفاده از MySQL، باید پس از اجرا دستور systemctl اجرا شود. برای انجام این کار، دستور زیر را وارد کنید:

sudo systemctl start mysqld.service

برای اطمینان از اجرای صحیح سرویس، دستور زیر را اجرا کنید. توجه کنید بسیاری از دستورها مانند start یا status اجباری نیستند و تنها می‌توانید بعد از systemctl نام سرویستان را به‌تنهایی قرار دهید.

sudo systemctl status mysqld

برای آشنایی با سیستم‌های مدیریت دیتابیس نسبی SQLite و MySQL و PostgreSQL و مقایسه‌ی عملکرد آن‌ها با یکدیگر مقاله زیر را بخوانید.

مقایسه SQLite و MySQL و PostgreSQL

اگر MySQL با موفقیت پیکربندی شده باشد، باید خروجی زیر را دریافت کنید:

● mysqld.service - MySQL 8.0 database server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-03-12 14:07:41 UTC; 1min 7s ago
 Main PID: 15723 (mysqld)
   Status: "Server is operational"
    Tasks: 38 (limit: 5056)
   Memory: 474.2M
   CGroup: /system.slice/mysqld.service
           └─15723 /usr/libexec/mysqld --basedir=/usr

Mar 12 14:07:32 cent-mysql-3 systemd[1]: Starting MySQL 8.0 database server...
Mar 12 14:07:32 cent-mysql-3 mysql-prepare-db-dir[15639]: Initializing MySQL database
Mar 12 14:07:41 cent-mysql-3 systemd[1]: Started MySQL 8.0 database server.

برای اجرای خودکار MySQL پس از ری‌بوت سرور، دستور زیر را اجرا کنید:

sudo systemctl enable mysqld

توجه: برای غیرفعال‌سازی خودکار MySQL هنگام ری‌بوت سرور، می‌توانید دستور زیر را اجرا کنید:

sudo systemctl disable mysqld

اکنون MySQL روی CentOS 8 شما نصب و اجرا شده است. در مرحله بعد، نحوه افزایش امنیت دیتابیس MySQL در سرور را آموزش می‌دهیم.

خرید سرور لینوکس

مرحله دوم: ایمن‌سازی MySQL

MySQL به‌طورپیش‌فرض اسکریپتی امنیتی دارد که برخی از گزینه‌های آن را برای بهبود امنیت MySQL می‌توانید تغییر دهید. برای استفاده از اسکریپت امنیتی، دستور زیر را اجرا کنید:

sudo mysql_secure_installation

این سرویس با ارائه برخی درخواست‌ها، شما را راهنمایی می‌کند تا بتوانید امنیت سیستم خود را افزایش دهید. اولین درخواست این سرویس از شما استفاده از افزونه اعتبارسنجی رمزعبور برای MySQL است. این سرویس قدرت رمزهای عبور شما را می‌سنجد.

اگر این افزونه امنیتی را فعال کنید، سرویس از شما می‌خواهد که سطح امنیت رمزعبورتان را انتخاب کنید. اگر قوی‌ترین سطح رمز‌عبور را انتخاب کنید (عدد ۲)، رمز‌عبور شما باید حداقل شامل ۸ کاراکتر و ترکیبی از حروف بزرگ، حروف کوچک، عدد و کاراکترهای خاص باشد.

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

دومین درخواستی که از شما می‌شود، درخواست تنظیم رمزعبور برای کاربر اصلی root MySQL است. رمزعبورتان را انتخاب و تأیید کنید.

خروجی:

Please set the password for root here.


New password: 

Re-enter new password:

اگر از افزونه اعتبارسنجی رمزعبور استفاده کرده باشید، بازخوردی از سطح رمزعبور وارد‌شده دریافت خواهید کرد. سپس، اسکریپت از شما می‌پرسد که می‌خواهید با رمزعبوری که وارد کرده‌اید ادامه دهید یا می‌خواهید رمزعبور جدیدی وارد کنید. با فرض اینکه از سطح امنیت رمزعبور واردشده‌ راضی هستید، Y را برای ادامه اسکریپت وارد کنید:

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

پس از این مرحله، می‌توانید تمام درخواست‌های بعدی را با واردکردن Y بپذیرید. با این کار برخی از کاربران ناشناس دیتابیس و دیتابیس‌های تستی حذف خواهند شد و ورود از راه دور (Remote Root Logins) غیرفعال خواهد شد. درنهایت، تمامی قوانین ذخیره خواهند شد و MySQL به آن قوانین عمل خواهد کرد.

برای دریافت آموزش کامل نصب Apache ،MariaDB و پردازشگر کد PHP در CentOS 8 به همراه تست، مقاله زیر را بخوانید.

نصب LAMP در CentOS 8

تمام قوانین:

Please set the password for root here.

New password: 

Re-enter new password: 

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done! 

نصب و ایمن‌سازی MySQL را روی سرور CentOS 8 با موفقیت انجام شد. در آخرین مرحله، باید دیتابیس خود را تست کنیم تا از فعال‌بودن و عملکرد صحیحش مطمئن شویم.

مشکل در نصب mysql

آموزش گام‌به‌گام نصب MySQL روی CentOS 8

مرحله سوم: آزمایش MySQL

برای آزمایش MySQL، از ابزار mysqladmin می‌توانید استفاده کنید. این ابزار به‌عنوان کلاینت به شما امکان می‌دهد دستورها را اجرا و اطلاعات را دریافت کنید. از دستور زیر برای اتصال MySQL به‌عنوان root (دستور -u root) با درخواست رمزعبور (-p) و درنهایت نمایش نسخه نصب‌شده استفاده کنید:

mysqladmin -u root -p version

درادامه، باید خروجی زیر را مشاهده کنید:

mysqladmin  Ver 8.0.17 for Linux on x86_64 (Source distribution)
Copyright (c) 2000, 2019, 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		8.0.17
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			2 hours 52 min 37 sec

Threads: 2  Questions: 20  Slow queries: 0  Opens: 131  Flush tables: 3  Open tables: 48  Queries per second avg: 0.001

این پیام نشان‌دهنده نصب موفق MySQL روی سرور شما است. برای تست ورود و دریافت اطلاعات MySQL، دستور زیر را اجرا کنید:

mysql -u root -p

همانند دستور mysqladmin قبل، این دستور نیز شامل -u برای متصل‌شدن به‌عنوان کاربر (در این مثال root) و شامل -p برای درخواست رمزعبور دیتابیس است. پس از اینکه رمزعبور کاربر root MySQL را وارد کردید، اعلان MySQL را مشاهده خواهید کرد که آماده اجرای دستورهای شما است:

Mysql>

از این‌جا می‌توانید کوئری‌های خود را اجرا کنید و عملیات‌های ورود، دریافت، به‌روزرسانی و حذف اطلاعات را انجام دهید و دیتابیس نصب‌شده را تست کنید.

مرحله چهارم: ایجاد دیتابیس MySQL و حساب کاربری جدید

برای ایجاد دیتابیس در MySQL، باید با استفاده از mysqladmin کوئری‌های SQL را اجرا و دیتابیس مدنظرتان را ایجاد کنید. با استفاده از کوئری‌های زیر، می‌توانید پایگاه‌داده‌ای با نام spaced و کاربر جدیدی با نام mars ایجاد می‌کنید:

CREATE DATABASE spacedb;
CREATE USER 'mars'@'%' IDENTIFIED BY 'User_Password_Here';
GRANT SELECT, INSERT, UPDATE, DELETE ON spacedb.* TO 'mars'@'%';
GRANT ALL PRIVILEGES ON spacedb.* TO 'mars'@'%';
SELECT user,host FROM mysql.user;
SHOW GRANTS for mars;
quit
mysql -u mars -p spacedb
mysql -u mars -h localhost -p spacedb

جمع‌بندی

نصب و پیکربندی MySQL روی CentOS 8 به‌آسانی انجام می‌شود؛ اما بدون ایمن‌سازی و تست، استفاده از آن اصلاً توصیه نمی‌شود. در این مقاله از آموزش سنت او اس و آموزش پایگاه داده، هرآنچه از نصب و راه‌اندازی اولیه MySQL نیاز داشتید، برایتان توضیح دادیم و حالا به‌راحتی می‌توانید از این سیستم دیتابیس استفاده کرد.

پس‌از‌آن، می‌توانید دیتابیسی کامل دراختیار داشته باشید و از آن بهره ببرید. بعد از نصب و پیکربندی اولیه، پیکربندی‌هایی مانند Replication یا Cluster را می‌توانید انجام دهید. دقت کنید پیکربندی امنیتی‌ای که انجام شد، تنها پیکربندی اولیه است و برای ایمن‌سازی بیشتر حتماً اقدام کنید.

سؤالات متداول

۱. چگونه می‌توانم به MySQL در CentOS 8 متصل شوم؟

  • نصب سرور CentOS 8
  • فعال‌کردن MySQL 8 mysqld
  • ایمن‌سازی MySQL سرور
  • پیکربندی یا راه‌اندازی مجدد سرور MySQL 8
  • تست MySQL 8

۲. آیا MySQL به‌طورپیش‌فرض روی CentOS 8 وجود دارد؟

خیر، با استفاده از دستور dnf install mysql-server می‌توانید از ریپازیتوری سرور نصب کنید.

۳. چگونه نسخه CentOS را پیدا کنم؟

ساده‌ترین راه برای بررسی نسخه CentOS اجرای دستور cat /etc/centos-release است.

۴. چگونه نسخه MySQL نصب‌شده روی CentOS 8 را پیدا کنم؟

با استفاده از دستور sudo systemctl status mysqld یا mysql -V می‌توانید این کار را انجام دهید.

۵. MySQL کجای لینوکس نصب می‌شود؟

تمام باینری‌های مربوط به MySQL را در /usr/bin و /usr/sbin می‌توانید پیدا کنید. همه جدول‌ها و دیتابیس‌ها در پوشه /var/lib/mysql ایجاد خواهند شد.

۶. MySQL رایگان است یا پولی؟

MySQL نرم‌افزاری رایگان و منبع‌باز است که مجوز عمومی GNU دارد و تحت انواع مجوزهای اختصاصی دردسترس است.

۷. سایر دیتابیس‌های برتر کدام‌اند؟

  • Cassandra
  • PostgreSQL
  • HBase
  • Redis
  • MongoDB
  • Neo4j
  • Elasticsearch
  • MS SQL Server

منبع:

digitalocean.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


ارسال دیدگاه در وبلاگ پارس‌پک را مطالعه کرده و آن‌ها را می‌پذیرم.

با خدمات ابری پارس پک آشنا شوید

اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم