
پایگاه های داده بخشی جدایی ناپذیر از هر پلتفرمی هستند. 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:
اگر از افزونه بررسی رمز عبور استفاده کرده باشید، بازخوردی در مورد سطح رمز وارد شده دریافت خواهید کرد. سپس اسکریپت از شما می پرسد که آیا می خواهید رمز عبور وارد شده را ادامه دهید یا می خواهید رمز عبور جدیدی وارد کنید. با فرض اینکه از سطح امنیتی رمز عبوری که وارد کرده اید راضی هستید، 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 به همراه تست، مقاله زیر را مطالعه کنید.
نصب 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 در CentOS 8
مرحله سوم: تست 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>
از اینجا می توانید پرس و جوهای خود را اجرا کنید و عملیات ورودی، دریافت، به روز رسانی و حذف را انجام دهید و پایگاه داده نصب شده را آزمایش کنید.
مرحله چهارم: یک پایگاه داده MySQL و یک حساب کاربری جدید ایجاد کنید
برای ایجاد پایگاه داده در MySQL، باید کوئری های SQL را با استفاده از mysqladmin اجرا کنید و پایگاه داده مورد نظر خود را ایجاد کنید. با استفاده از کوئری های زیر می توانید یک پایگاه داده با نام 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 یا Clustering را انجام دهید. لطفاً توجه داشته باشید که پیکربندی امنیتی انجام شده فقط پیکربندی اولیه است و فراموش نکنید که امنیت بیشتری را انجام دهید.
سوالات متداول
1. چگونه در CentOS 8 به MySQL متصل شویم؟
- نصب سرور CentOS 8
- فعال کردن MySQL 8 mysqld
- امنیت سرور MySQL
- سرور 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
- ردیس
- MongoDB
- Neo4j
- جستجوی الاستیک
- MS SQL Server
منبع:
digitalocean.com