آموزش نصب MySQL در اوبونتو ۲۰.۰۴
- بهدست: مدیر
- دستهبندی: برنامه نویسی, مقالات آموزشی

آموزش نصب MySQL در اوبونتو ۲۰.۰۴
مقدمه
MySQL یک سیستم مدیریت پایگاه داده منبع باز است که معمولا به عنوان بخشی از LAMP (Linux, Apache, MySQL, PHP/Python/Perl) نصب میشود. این مدل رابطهای را پیادهسازی میکند و از زبان پرس و جو ساختاریافته برای مدیریت دادههای خود استفاده میکند.
در این آموزش نحوه نصب MySQL نسخه ۸.۰ بر روی سرور اوبونتو ۲۰.۰۴ توضیح داده خواهد شد. بعد از تکمیل این شما یک پایگاه داده رابطه ای فعال خواهید داشت که می توانید از آن برای ساخت وب سایت یا برنامه بعدی خود استفاده کنید.
پیش نیازها
در این آموزش، شما به این نیاز دارید:
- یک سرور اوبونتو ۲۰.۰۴ با یک کاربر معمولی (یعنی بدون root) و یک فایروال پیکربندی شده با UFW برای تنظیم راه اندازی این سرور با ما همراه باشید.
مرحله ۱ – نصب MySQL
در اوبونتو ۲۰.۰۴، شما می توانید MySQL را با استفاده از مخزن پیکچ APT نصب کنید. در این مقاله، نسخه MySQL موجود در مخزن پیشفرض اوبونتو نسخه ۸.۰.۲۷ است.
برای نصب آن، پیکچ ها را در سرور خود آپدیت کنید:
sudo apt update
سپس پیکچ mysql-server را نصب کنید:
sudo apt install mysql-server
با استفاده از دستور systemctl start در سرور، اجرا میشود.
sudo systemctl start mysql.service
این دستورات نصب و MySql را راه اندازی میکند، اما از شما خواسته نمیشود که رمز عبور تعیین کنید یا تغییرات دیگری در پیکربندی انجام دهید و از آنجایی که نصب MySQL امنیت ندارد، در ادامه به این موضوع می پردازیم.
مرحله ۲ – پیکربندی MySQL
برای نصب جدید MySql، شما می خواهید دستورات اسکریپت امنیتی DBMS را فعال و اجرا کنید. این دستورات اسکریپت برخی از گزینه های پیش فرض امنیت کمتر را برای مواردی مانند ورود به سیستم با دسترسی root از راه دور و … تغییر می دهد.
هشدار: از جولای ۲۰۲۲، هنگام اجرای اسکریپت mysql_secure_installation بدون پیکربندی بیشتر، خطایی رخ میداد. دلیل آن این است که این دستورات اسکریپت سعی می کند یک رمز عبور MySQL را برای کاربر root نصب و تنظیم کند، اما به طور پیش فرض در نصب اوبونتو، این حساب کاربری برای اتصال با استفاده از رمز عبور پیکربندی نشده است.
دستورات اسکریپت امنیتی را با sudo اجرا کنید:
sudo mysql_secure_installation
این اسکریپت شما را از طریق یک سری دستورات راهنمایی می کند که در آن می توانید تغییراتی در گزینه های نصب امنیتی MySQL خود ایجاد کنید. اولین درخواست از شما می پرسد که آیا می خواهید افزونه اعتبار رمز عبور را تنظیم کنید، که می تواند برای تست قدرت رمز عبور کاربران جدید MySQL قبل از در نظر گرفتن آنها استفاده شود.
اگر شما راه اندازی افزونه اعتبار سنجی رمز عبور را انتخاب کنید، هر کاربر MySQL که با یک رمز عبور احراز هویت می کند، باید رمز عبوری داشته باشد که با policy انتخابی شما مطابقت داشته باشد.
قویترین سطح policy ، که با وارد کردن شماره ۲ می توانید آن را انتخاب کنید که پسوردها باید حداقل هشت کاراکتر داشته باشند و ترکیبی از حروف بزرگ، کوچک، عددی و کاراکترهای خاص را شامل شود:
Output 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:
وقتی تنظیمات افزونی اعتبار سنجی رمز عبور را انتخاب میکنید، دستور بعدی تعیین رمز عبور برای کاربر root در MySQL خواهد بود. امنیت رمز عبور انتخابی خود را وارد و سپس تأیید کنید:
Output Please set the password for root here. New password: Re-enter new password:
توجه داشته باشید که حتی اگر یک رمز عبور برای کاربر root در MySQL تعیین کرده اید این کاربر در حال حاضر برای احراز هویت با رمز عبور هنگام اتصال به MySQLپیکربندی نشده است.
مرحله ۳ – ایجاد یک کاربر اختصاصی MySQL
پس از نصب، MySQL یک حساب کاربری root ایجاد می کند که می توانید از آن برای مدیریت پایگاه داده خود استفاده کنید. این کاربر دارای امتیازات کامل بر سرور MySQL است، به این معنی که کنترل کاملی بر هر پایگاه داده، جدول، کاربر و غیره دارد. به همین دلیل، بهتر است از استفاده از این حساب خارج از عملکردهای اداری خودداری کنید. در این مرحله نحوه استفاده از کاربر root در MySQL برای ایجاد یک حساب کاربری جدید توضیح داده شده است. بنابراین باید mysql را با امتیازات sudo فراخوانی کنید تا به کاربر ریشه MySQL دسترسی پیدا کنید:
sudo mysql
پس از دسترسی سریع به MySQL، می توانید یک کاربر جدید با عبارت CREATE USER ایجاد کنید. این دستورات از این نحو کلی دنبال می کنند:
mysql > CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
username = نام کاربری mysql
Host = میتوانید در سرور اوبونتو localhost مشخص کنید.
authentication_plugin = میتوانید کاملا کنار بگذارید تا کاربر با افزونه پیشفرض caching_sha2_password احراز هویت کند.
به عنوان مثال: مطمئن شوید که sammy را به نام کاربری و رمز عبور دلخواه خود به یک رمز عبور قوی انتخاب کنید:
mysql > CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
پس از ایجاد کاربر جدید خود، می توانید امتیازات مناسب را به آنها بدهید. نحو دستور کلی برای ثبت امتیازات کاربر به شرح زیر است:
mysql > GRANT PRIVILEGE ON database.table TO 'username'@'host';
مقدار PRIVILEGE در این نحو مثال، مشخص می کند که کاربر مجاز است چه اقداماتی را در پایگاه داده و جدول مشخص شده انجام دهد. شما میتوانید با جدا کردن هر کدام با کاما، چندین امتیاز را در یک دستور به یک کاربر اختصاص دهید. همچنین می توانید با وارد کردن ستاره (*) به جای پایگاه داده و نام جدول، امتیازات کلی را به کاربر ثبت کنید.
به عنوان مثال:
mysql > GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
پس از این، اجرای دستور FLUSH PRIVILEGES تمرین خوبی است. این کار هر حافظه ای را که سرور در نتیجه دستورات قبلی CREATE USER و GRANT کش کرده است را آزاد می کند:
mysql > FLUSH PRIVILEGES;
سپس میتوانید از mysql خارج شوید:
mysql > exit
در آینده، برای ورود به عنوان کاربر جدید MySQL ، از دستوری مانند زیر استفاده خواهید کرد:
mysql -u sammy -p
-p = این دستور باعث میشود که کلاینت MySQL از شما رمز عبور کاربر MySQL را برای احراز هویت درخواست کند.
مرحله ۴ – تست یا آزمایش MySQL
MySQL باید به طور خودکار شروع به اجرا می کرد. برای تست این، وضعیت آن را بررسی کنید.
systemctl status mysql.service
خروجی مشابه زیر را خواهید دید:
Output mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-04-21 12:56:48 UTC; 6min ago Main PID: 10382 (mysqld) Status: "Server is operational" Tasks: 39 (limit: 1137) Memory: 370.0M CGroup: /system.slice/mysql.service └─۱۰۳۸۲ /usr/sbin/mysqld
اگر mysql اجرا نشد، شما میتوانید از دستور زیر استفاده کنید:
sudo systemctl start mysql
برای بررسی بیشتر، میتوانید با استفاده از ابزار mysqladmin، که یک کلاینت است که به شما امکان اجرای دستورات مدیریتی را میدهد، به پایگاه داده متصل شوید.
به عنوان مثال:
sudo mysqladmin -p -u sammy version
شما باید خروجی مشابه این را ببینید:
Output mysqladmin Ver 8.0.19-0ubuntu5 for Linux on x86_64 ((Ubuntu)) Copyright (c) 2000, 2020, 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 ۸.۰.۱۹-0ubuntu5 Protocol version ۱۰ Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: ۱۰ min 44 sec Threads: 2 Questions: 25 Slow queries: 0 Opens: 149 Flush tables: 3 Open tables: 69 Queries per second avg: 0.038
بدون دیدگاه