
پایگاه های داده بخشی جدایی ناپذیر از هر پلتفرمی هستند. MySQL یکی از محبوب ترین پایگاه داده های رابطه ای است که به صورت رایگان در دسترس است. نصب MySQL در CentOS 8 آسان است. اما بدون حفاظت و پیکربندی اولیه نمی توان از آن استفاده کرد. اگر این پایگاه داده ایمن نباشد، استفاده از آن خطرناک است و احتمال هک اطلاعات افزایش می یابد.
در این مقاله آموزش سیستم عامل همه چیزهایی را که برای استفاده از این پایگاه داده نیاز دارید توضیح داده ایم: ابتدا یک پایگاه داده MySQL کامل را روی سرور نصب و پیکربندی می کنیم و سپس امنیت اولیه را انجام می دهیم تا بتوانید از پایگاه داده استفاده کنیم اعتماد به نفس.
سیستم پایگاه داده MySQL چگونه است؟
MySQL یک سیستم پایگاه داده منبع باز است که معمولاً به عنوان بخشی از بسته های محبوب LEMP مانند Linux، Nginx، MySQL/MariaDB، PHP/Python/Perl استفاده می شود. MySQL یک پایگاه داده رابطه ای است که داده ها را در جداول متشکل از ستون ها و ردیف ها ذخیره می کند. شایان ذکر است این سیستم برای مدیریت کوئری ها از SQL (مخفف زبان پرس و جوی ساختاریافته) استفاده می کند.


آشنایی با ویژگی های MySQL
پیش نیازها
برای نصب MySQL روی CentOS 8 کافی است سروری با پیکربندی اولیه زیر داشته باشید:
مرحله 1: MySQL را نصب کنید
در CentOS 8، بسته MySQL نسخه 8 در مخزن اصلی موجود است. دستور زیر را برای نصب بسته 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 روی سرور را آموزش خواهیم داد.

مرحله 2: ایمن سازی MySQL
به طور پیش فرض، MySQL دارای یک اسکریپت امنیتی است که می توانید برخی از گزینه های آن را برای بهبود امنیت MySQL تغییر دهید. برای استفاده از اسکریپت امنیتی، دستور زیر را اجرا کنید:
sudo mysql_secure_installation
این سرویس با ارائه برخی درخواست ها شما را راهنمایی می کند تا بتوانید امنیت سیستم خود را افزایش دهید. اولین درخواست از این سرویس استفاده از افزونه اعتبارسنجی رمز عبور برای MySQL است. این سرویس قدرت رمز عبور شما را اندازه گیری می کند.
اگر این افزونه امنیتی را فعال کنید، سرویس از شما می خواهد که یک سطح امنیتی برای رمز عبور خود انتخاب کنید. اگر قوی ترین سطح رمز عبور (شماره 2) را انتخاب کنید، رمز عبور شما باید حداقل دارای 8 کاراکتر و ترکیبی از حروف بزرگ، حروف کوچک، اعداد و کاراکترهای خاص باشد.
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
دومین درخواست تنظیم رمز عبور برای کاربر ریشه MySQL است. رمز عبور خود را انتخاب و تایید کنید.
خروجی:
Please set the password for root here. New password: Re-enter new password:
اگر از افزونه Password Verification استفاده کرده باشید، پاسخی در سطح رمز وارد شده دریافت خواهید کرد. در مرحله بعد، اسکریپت از شما می پرسد که آیا می خواهید با رمز عبوری که وارد کرده اید ادامه دهید یا می خواهید رمز عبور جدیدی وارد کنید. با فرض اینکه از سطح امنیتی رمز عبور وارد شده راضی هستید، 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، تمام درخواست های بعدی را بپذیرید. با این کار، برخی از کاربران ناشناس پایگاه داده و پایگاه های داده آزمایشی حذف می شوند و ورود به ریشه از راه دور غیرفعال می شود. در نهایت، همه قوانین ذخیره می شوند و MySQL بر اساس آن قوانین عمل می کند.
برای دریافت آموزش کامل نصب پردازنده های کد Apache، MariaDB و PHP در CentOS 8 به همراه تست، مقاله زیر را مطالعه کنید.
CentOS 8. نصب LAMP روی
همه قوانین:
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 در CentOS 8
مرحله 3: تست MySQL
برای تست MySQL می توانید از ابزار mysqladmin استفاده کنید. به عنوان یک مشتری، این ابزار به شما اجازه می دهد تا دستورات را اجرا کنید و اطلاعات را بازیابی کنید. از دستور زیر برای اتصال به MySQL به عنوان root (فرمان ریشه -u) با یک اعلان رمز عبور (-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 برای اتصال به عنوان کاربر (روت در این مثال) و -p برای درخواست رمز عبور پایگاه داده است. پس از اینکه رمز عبور کاربر ریشه MySQL را وارد کردید، یک اعلان MySQL را مشاهده خواهید کرد که آماده اجرای دستورات شماست:
Mysql>
از اینجا می توانید پرس و جوهای خود را اجرا کنید و عملیات ورود، دریافت، به روز رسانی و حذف اطلاعات را انجام دهید و پایگاه داده نصب شده را تست کنید.
مرحله 4: پایگاه داده MySQL و حساب کاربری جدید ایجاد کنید
برای ایجاد پایگاه داده در MySQL، باید کوئری SQL را با استفاده از mysqladmin اجرا کنید و پایگاه داده مورد نظر خود را ایجاد کنید. با استفاده از کوئری های زیر می توانید یک پایگاه داده با نام space و یک کاربر جدید به نام 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 را انجام دهید. لطفاً توجه داشته باشید که پیکربندی امنیتی انجام شده فقط پیکربندی اولیه است و حتماً امنیت بیشتری را انجام دهید.
سوالات متداول
1. چگونه می توانم به MySQL در CentOS 8 متصل شوم؟
- نصب سرور CentOS 8
- mysql 8 mysqld را فعال کنید
- ایمن سازی MySQL Server
- سرور MySQL 8 را پیکربندی یا راه اندازی مجدد کنید
- تست MySQL 8
2. آیا MySQL به طور پیش فرض در CentOS 8 وجود دارد؟
خیر، می توانید با استفاده از دستور dnf install mysql-server از مخزن سرور نصب کنید.
3. چگونه نسخه CentOS را پیدا کنم؟
ساده ترین راه برای بررسی نسخه CentOS cat /etc/centos-release است.
4. چگونه می توانم نسخه MySQL نصب شده در CentOS 8 را پیدا کنم؟
می توانید این کار را با استفاده از دستور sudo systemctl status mysqld یا mysql -V انجام دهید.
5. MySQL کجا روی لینوکس نصب می شود؟
شما می توانید تمام باینری های مربوط به MySQL را در /usr/bin و /usr/sbin پیدا کنید. تمام جداول و پایگاه داده ها در پوشه /var/lib/mysql ایجاد خواهند شد.
6. MySQL رایگان است یا پولی؟
MySQL یک نرم افزار رایگان و متن باز است که تحت مجوز عمومی عمومی گنو مجوز دارد و تحت انواع مجوزهای اختصاصی در دسترس است.
7. دیگر پایگاه های داده برتر کدامند؟
- کاساندرا
- PostgreSQL
- HBase
- redis
- MongoDB
- Neo4j
- Elasticsearch
- سرور ms sql
منبع:
digitalocean.com