MySQL محبوب ترین سیستم مدیریت پایگاه داده از راه دور (RMDBS) متنباز است. این سیستم قابل اعتماد، کارآمد، بالغ و دارای پشتیبانی و پذیرش گسترده است. از LAMP گرفته تا پایگاههای داده پردازش تراکنش آنلاین (OLTP)، طیف وسیعی از برنامههای حیاتی به MySQL وابسته هستند.
در اینجا، برای کمک به شما در شروع کار با این RMDBS محبوب، شما را در یک آموزش گام به گام در مورد نحوه نصب و پیکربندی MySQL در اوبونتو ۲۰.۰۴ همراهی خواهیم کرد. در پایان آموزش، سرور MySQL شما در اوبونتو ۲۰.۰۴ با پیکربندیهای زیر اجرا خواهد شد:
STRONGسیاست اعتبارسنجی رمز عبور- ورود به سیستم از راه دور با کاربر root مجاز نیست
- ورود ناشناس و غیرفعال بودن پایگاه داده آزمایشی
- یک کاربر اختصاصی MySQL که از
caching_sha2_passwordمکانیزم احراز هویت استفاده میکند و دارای دسترسیهایALTER, CREATE, DELETE, DROP, INSERT, REFERENCES, RELOAD, SELECTوUPDATEروی همه جداول و پایگاههای داده است.
سپس، مجموعهای از نکات را برای کمک به شما در کار با MySQL در اوبونتو ۲۰.۰۴ ارائه خواهیم داد.
اگر فقط میخواهید MySQL را راهاندازی کنید و شروع کنید، نسخه Tl;dr را بررسی کنید. اگر میخواهید تمام جزئیات را بدانید، به آموزش نصب MySQL در اوبونتو ۲۰.۰۴ مراجعه کنید.
# یک راه سریع برای نصب سرور MySQL در اوبونتو ۲۰.۰۴ #
ما دوست نداریم آموزشها بیش از حد لازم کش پیدا کنند. بنابراین، اگرچه توصیه میکنیم آموزش کامل و نکات زیر را بخوانید، نسخه Tl;dr را نیز در اختیار شما قرار میدهیم.
اگر فقط میخواهید MySQL را به سرعت در اوبونتو ۲۰.۰۴ برای آزمایش یا محیطهای غیرتولیدی نصب کنید، مراحل زیر را دنبال کنید ( yourmysqluserنام کاربری و passwordرمز عبور خود را جایگزین کنید):
- با کاربری که دارای امتیازات sudo است به دستگاه اوبونتو ۲۰.۰۴ خود وارد شوید و این دستور را برای بهروزرسانی مخازن خود اجرا کنید:
sudo apt-get update -y - MySQL را با این دستور نصب کنید:
sudo apt install mysql-server -y - اسکریپت را برای ایمنسازی نصب MySQL با این دستور اجرا کنید:
sudo mysql_secure_installation - به درخواستها پاسخ دهید تا نصب خود را مطابق میل خود سخت کنید.
- MySQL را اجرا کنید و سپس با استفاده از این دستورات، یک کاربر غیر ریشه با مجموعه امتیازات MySQL مورد نظر خود ایجاد کنید (مجموعه امتیازات مثال ما در دستور c استفاده شده است):
sudo mysqlCREATE USER 'yourmysqluser'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';GRANT ALTER, CREATE, DELETE, DROP, INSERT, REFERENCES, RELOAD, SELECT, UPDATE ON *.* TO 'yourmysqluser'@'localhost' WITH GRANT OPTION;exit
- مطمئن شوید که میتوانید با استفاده از این دستور با کاربر تازه ایجاد شده خود به MySQL وارد شوید:
mysql -u yourmysqluser -p

اکنون باید در خط فرمان MySQL باشید و میتوانید از MySQL در دستگاه اوبونتو ۲۰.۰۴ خود استفاده کنید.
#نصب و پیکربندی MySQL در اوبونتو ۲۰.۰۴ #
در این آموزش مفصل، هر مرحله را به طور مفصل توضیح خواهیم داد تا شما در مورد کاری که انجام میدهید، اطلاعات کافی داشته باشید. تمرکز ما بر نصب و پیکربندی یک سرور استاندارد MySQL در اوبونتو ۲۰.۰۴ است که میتواند به عنوان یک نقطه شروع مفید برای بسیاری از برنامههای عمومی عمل کند.
#پیشنیازها #
قبل از شروع، به موارد زیر نیاز دارید:
- دستگاه اوبونتو ۲۰.۰۴ با دسترسی به اینترنت (برای دسترسی به مخازن اوبونتو)
- کاربر با امتیازات sudo
#مرحله ۱: مخازن اوبونتو خود را ارتقا دهید #
MySQL در مخازن پیشفرض اوبونتو ۲۰.۰۴ موجود است. برای اطمینان از دانلود آخرین نسخه در مرحله بعدی، مخازن خود را با این دستور بهروزرسانی کنید:
sudo apt install mysql-server -y
متوجه خواهید شد که ما -yبه انتهای دستور اضافه کردیم. این به سادگی باعث میشود apt– مدیر بسته اوبونتو – درخواستها را بپذیرد و به صورت غیر تعاملی اجرا شود. اگر ترجیح میدهید دستور را به صورت تعاملی اجرا کنید و به درخواستها پاسخ دهید، را حذف کنید -y.
#مرحله ۲: نصب MySQL #
سپس، با استفاده از دستور زیر، آخرین نسخه سرور MySQL را با استفاده از apt نصب کنید:
sudo apt install mysql-server -y
تبریک! پس از اتمام این دستور، MySQL روی اوبونتو ۲۰.۰۴ نصب خواهد شد. میتوانید با استفاده از این دستور، نصب MySQL را تأیید کنید mysqld --version. در اینجا مثالی از خروجی مورد انتظار آورده شده است:
pepperandegg@humorous-wombat:~$ mysqld --version
/usr/sbin/mysqld Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
#مرحله ۳: نصب MySQL خود را با mysql_secure_installation ایمن کنید #
اکنون زمان پیکربندی نصب MySQL شما فرا رسیده است. ما با مقاومسازی نصب شروع خواهیم کرد. خوشبختانه، MySQL با یک اسکریپت تعاملی mysql_secure_installation ، مقاومسازی اولیه را ساده میکند .
- برای شروع، دستور زیر را اجرا کنید:
sudo mysql_secure_installation
- این یک اعلان تعاملی را اجرا میکند. اولین سوال این است که به عنوان پاسخ خود
Would you like to setup VALIDATE PASSWORD component?وارد شوید .y
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
- در مرحله بعد، از شما خواسته میشود سطح سیاست اعتبارسنجی رمز عبور را انتخاب کنید. پاسخهای احتمالی عبارتند از:
- رمزهای عبور پایین (۰) باید حداقل ۸ کاراکتر داشته باشند
- متوسط (۱) رمزهای عبور باید حداقل ۸ کاراکتر داشته باشند و شامل حداقل ۱ کاراکتر کوچک، ۱ کاراکتر بزرگ و ۱ کاراکتر ویژه باشند.
- قوی (۲) تمام الزامات MEDIUM به علاوه رمزهای عبور نباید با کلمات موجود در فایل validate_password_dictionary_file مطابقت داشته باشند
۲برای انتخاب سیاست اعتبارسنجی رمز عبور، Enter را بزنید STRONG.
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
- در مرحله بعد، از شما خواسته میشود که یک رمز عبور وارد کنید
New password. این رمز عبور برای کاربر ریشه MySQL است. یک رمز عبور قوی اینجا وارد کنید و در قسمت تأیید کنیدRe-enter new password. اگر رمز عبور الزامات سیاست رمز عبور را برآورده کند ، قدرت تخمینی مانند مثال زیر راSTRONGمشاهده خواهید کرد .۱۰۰
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)Enter را بزنیدyو از رمز عبوری که به عنوان رمز عبور root پیکربندی کردهاید استفاده کنید.
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
- به طور پیشفرض، MySQL یک کاربر ناشناس دارد که در ادامه
Remove anonymous users? (Press y|Y for Yes, any other key for No)با ayآن را حذف میکنیم.
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
yدر مرحله بعد، با وارد کردن دستور زیر ، ورود کاربر root از راه دور را غیرفعال کنیدDisallow root login remotely? (Press y|Y for Yes, any other key for No):
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
yبا وارد کردن دستور زیر در خط فرمان ، پایگاه داده آزمایشی پیشفرض را حذف کنیدRemove test database and access to it? (Press y|Y for Yes, any other key for No):
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
- در نهایت، برای اطمینان از اعمال تغییرات بلافاصله،
yدرReload privilege tables now? (Press y|Y for Yes, any other key for No)خط فرمان enter بزنید. پس از آن، به خط فرمان استاندارد اوبونتو برای کاربر خود باز خواهید گشت.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
pepperandegg@humorous-wombat:~$
#مرحله ۴: ایجاد یک کاربر اختصاصی MySQL #
اگرچه میتوانید از کاربر root برای دسترسی به MySQL برای همه چیز استفاده کنید، اما از دیدگاه امنیتی بهتر است یک کاربر MySQL ایجاد کنید که فقط مجوزهای مورد نیاز برای یک مورد استفاده خاص را داشته باشد. در این مرحله، ما از یک مجموعه نمونه از مجوزهایی استفاده خواهیم کرد که باید برای بسیاری از موارد استفاده کار کند، اما در صورت تمایل میتوانید آن را مطابق با نیازهای خود تغییر دهید.
- MySQL را با دستور زیر اجرا کنید
sudo mysql
💡 نکته حرفهای : اگر نصب MySQL خود را طوری تغییر دادهاید که از افزونه auth_socket استفاده نکند یا دسترسی sudo ندارید، میتوانید با استفاده از رمز عبور مرحله ۳ با دستور زیر به عنوان root احراز هویت کنید:mysql -u root -p
- با این دستور یک کاربر MySQL ایجاد کنید (
pepperandeggنام کاربری وpasswordرمز عبور خود را جایگزین کنید):
CREATE USER 'pepperandegg'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
📝 نکات مهم در مورد مکانیسمهای احراز هویت: در مثال ما، از مکانیسم احراز هویت پیشنهادی MySQL استفاده کردیم caching_sha2_password. با این حال، مواردی وجود دارد که ممکن است بخواهید از مکانیسم احراز هویت متفاوتی استفاده کنید.
برای مثال، بسیاری از نسخههای PHP با سازگار نیستند caching_sha2_password. در این موارد، همانطور که در این پاسخ StackOverflow و این مشکل Laradock GitHub نشان داده شده است ، راه حل استفاده از است mysql_native_password. برای ایجاد کاربری که از mysql_native_password استفاده میکند و مجوزهای مشابه کاربر نمونه ما در اینجا را دارد، از این دستور استفاده کنید ( php_pepperandeggنام کاربری و passwordرمز عبور خود را جایگزین کنید):
CREATE USER 'php_pepperandegg'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
از طرف دیگر، اگر از تکثیر دادههای MySQL source-replica استفاده میکنید، ممکن است لازم باشد از مکانیزم احراز هویت استفاده کنید sha256_password. برای ایجاد یک کاربر با استفاده از مکانیزم احراز هویت، این دستور را اجرا کنید ( نام کاربری و رمز عبور خود sha256_passwordرا جایگزین کنید ):sha256nocache_pepperandeggpassword
CREATE USER 'sha256nocache_pepperandegg'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
- به کاربر MySQL خود امتیازات لازم را اعطا کنید. میتوانید لیست کاملی از امتیازات را در مستندات MySQL مشاهده کنید. برای مثال، ما با استفاده از این دستور (به جای pepperandegg نام کاربری خود را جایگزین کنید) امتیازات ALTER، CREATE، DELETE، DROP، INSERT، REFERENCES، RELOAD، SELECT و UPDATE را در تمام جداول و پایگاههای داده ( . ) اعطا میکنیم:
GRANT ALTER, CREATE, DELETE, DROP, INSERT, REFERENCES, RELOAD, SELECT, UPDATE ON *.* TO 'pepperandegg'@'localhost' WITH GRANT OPTION;
- اکنون میتوانید با دستور exit از اعلان MySQL خارج شوید تا به اعلان کاربر اوبونتو خود بازگردید.
mysql> exit
Bye
pepperandegg@humorous-wombat:~$
#مرحله ۵: اعتبارسنجی نصب MySQL و تست دستورات پایه MySQL #
اکنون که MySQL نصب و پیکربندی شده است، میتوانید از آن به همین شکل استفاده کنید. با این حال، برای این آموزش، بیایید با انجام این کارهای اساسی، نصب را تأیید کنیم:
- با کاربر تازه ایجاد شده به MySQL وارد شوید
- یک
breakfastپایگاه داده باfoodجدولی که دارای فیلدهایsandwichو است، ایجاد کنید.description - روی
foodمیز بنویسید foodاز روی جدول بخوانید- حذف
breafastپایگاه داده - خروج از MySQL
- ابتدا با این دستور وارد سیستم میشویم (به جای pepperandegg نام کاربری خود را وارد کنید و رمز عبور خود را در اعلان وارد کنید)
mysql -u pepperandegg -p
- با این دستور یک جدول جدید به نام breakfast ایجاد کنید:
CREATE DATABASE breakfast;
- در مرحله بعد، جدول غذا را در پایگاه داده صبحانه ایجاد خواهیم کرد. ستونهای ساندویچ و توضیحات را که از نوع داده varchar استفاده میکنند، با این دستور به پایگاه داده اضافه خواهیم کرد :
CREATE TABLE breakfast.food (sandwich VARCHAR(20), description VARCHAR(255));
- حالا، بیایید با استفاده از دستور INSERT INTO SQL یک ردیف جدید در پایگاه داده ایجاد کنیم:
INSERT INTO breakfast.food(sandwich, description) VALUES ('Pepper and Egg', 'The absolute best sandwich ever');
- با این دستور تمام ردیفهای جدول ما را مشاهده کنید:
SELECT * FROM breakfast.food;
خروجی باید به این شکل باشد:
mysql> SELECT * FROM breakfast.food;
+----------------+---------------------------------+
| sandwich | description |
+----------------+---------------------------------+
| Pepper and Egg | The absolute best sandwich ever |
+----------------+---------------------------------+
۱ row in set (0.00 sec)
mysql>
- حالا که تستهایمان تمام شد، بیایید
breakfastپایگاه دادهمان را با این دستور حذف کنیم:
DROP database breakfast;
- در نهایت، بیایید از MySQL خارج شویم و با دستور exit به خط فرمان اوبونتو برگردیم:
mysql> exit
Bye
pepperandegg@humorous-wombat:~$
#برگه تقلب دستورات MySQL در اوبونتو #
اگر تازه کار با MySQL و اوبونتو را شروع کردهاید، ممکن است زمان زیادی را صرف جستجوی دستورات اولیه در گوگل (یا DuckDuckGo) کنید. برای کمک به کاهش این دردسر، ما یک راهنمای دستورات MySQL و اوبونتو برای شما گردآوری کردهایم. در زیر برخی از دستورات رایج که ممکن است مفید باشند، آورده شده است. برای سادگی، فرض میکنیم که شما دستورات را روی یک سرور محلی MySQL که به آن دسترسی ریشه دارید، اجرا میکنید.
#نمایش همه پایگاههای داده #
SHOW DATABASES;
#نمایش تمام جداول یک پایگاه داده #
USE your_database_name;
SHOW TABLES;
#مشاهده همه کاربران MySQL #
USE mysql;
SELECT user FROM user;
#مشاهده امتیازات یک کاربر MySQL #
به جای username، نام کاربری مورد نظر را وارد کنید:
SHOW GRANTS FOR 'username'@'localhost';
#حذف یک کاربر MySQL #
به جای username، نام کاربری مورد نظر را قرار دهید.
DROP USER 'username'@'localhost';
#سخن آخر: چیزی عالی بسازید! #
امیدواریم از آموزش نصب و پیکربندی MySQL در اوبونتو لذت برده باشید! موارد استفاده جالب زیادی برای MySQL وجود دارد و میتواند یک RDBMS عالی برای پروژه بعدی شما باشد. اکنون که اصول اولیه را میدانید، میتوانید شروع به ساختن چیزی عالی کنید.
