آموزش نصب MySQL در Ubuntu 18.04

آموزش نصب MySQL در Ubuntu 18.04
Avatar
نویسنده: دریا آزادخواه
شنبه 7 اردیبهشت 1392
مطالعه: ۱۳ دقیقه ۰ نظر ۲۱۰۴ بازدید

نصب my SQL در لینوکس اوبنتو 18.04؛ MySQL به عنوان یکی از سیستم مدیریت پایگاه داده منبع باز شناخته شده است که معمولا به عنوان بخشی از Stack محبوب LAMP به شمار می‌رود. LAMP شامل Linux، Apache، MySQL، PHP/Python/Perl می‌شود. به طور کلی MySQL از ارتباط پایگاه داده‌ها و SQL برای مدیریت داده‌های خود استفاده می‌کند. در این مطلب از آموزش اوبونتو بلاگ پارس پک شما با آموزش نصب MySQL در Ubuntu 18.04 آشنا می‌شوید.
نسخه کوتاه از فایل نصبی بسیار ساده است. به گونه‌ای که در ابتدا باید پکیج خود را به روز رسانی کنید، سپس بسته mysql-server را نصب کنید. در نهایت کاری که باید انجام دهید این است که اسکریپت امنیتی موجود را اجرا نمایید.

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

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

دستور زیر مراحل بالا را به ترتیب ذکرشده نشان می‌دهد:

$ sudo apt update
$ sudo apt install mysql-server
$ sudo mysql_secure_installation

پیش نیازهای نصب MySQL در اوبونتو

برای اینکه این آموزش اوبونتو را دنبال کنید و برترین یادگیری و عملکرد را داشته باشید، مستلزم بهره مند بودن از پیش نیازهای زیر هستید:

  • در ابتدا باید یک سرور Ubuntu 18.04 را در دسترس داشته باشید.
  • این سرور باید از تنظیمات اولیه سرور بهره مند باشد.
  • این تنظیمات می‌توانند شامل امتیاز کاربر غیر روت باشد که با استفاده از فایروال راه اندازی شده است.

مراحل نصب my SQL در Ubuntu 18.04

برای اینکه بتوانید MySQL را بر روی Ubuntu 18.04 نصب کنید باید مراحل مختلفی را به ترتیب طی کنید تا به نتیجه دلخواه برسید. در ادامه به طور کامل به بررسی این مراحل و دستورات مربوطه پرداخته شده است.

مرحله 1: نصب MySQL

در Ubuntu 18.04 تنها آخرین نسخه از MySQL به صورت پیش فرض در مخزن APT گنجانده شده است. در این مطلب نیز تمامی دستورات برای نسخه 5.7 آموزش داده شده است.
برای اینکه بتوانید فرآیند نصب کردن را به انجام برسانید، در ابتدا باید فهرست بسته بندی را بر روی سرود خود به روز رسانی کنید. دستور مورد نیاز برای اینکار به صورت زیر است:

sudo apt update

بعد از آن باید پکیج پیش فرض را نصب کنید. برای این کار نیز با دستور مختلفی را وارد کنید و سپس به اجرا برسانید. این دستور به صورت زیر می‌باشد:

sudo apt install mysql-server

با وارد کردن این دستور، MySQL نصب خواهد شد اما از شما خواسته نمی‌شود که یک رمز عبور برای آن تنظیم کنید و یا تغییرات دیگری را در پیکربندی به ثبت برسانید. زیرا این کار باعث خواهد شد تا نصب MySQL شما ناامن شود و به نوعی امنیت فضای شما پایین بیاید.

مرحله 2: پیکربندی MySQL

برای نصب‌های جدیدی که انجام می‌شوند، باید اسکریپت امنیتی موجود را اجرا کنید. این تغییر باعث خواهد شد تا برخی از گزینه‌های پیش فرض از امنیت کمتری در موارد مختلفی بهره مند شوند. ورود به سیستم root کاربران از راه دور تنها نمونه کوچکی از این موارد است. در نسخه‌های قدیمی MySQL شما باید دایرکتوری مورد نیاز را داده و سپش آن را به صورت دستی تنظیم می‌کردید ولی حالا تمام این عملیات به صورت خودکار انجام می‌شوند.

اجرای اسکریپت امنیتی

حال باید بتوانید اسکریپت امنیتی را اجرا کنید. برای اینکار باید دستور زیر را به مرحله اجرا برساند:

sudo mysql_secure_installation

این کار باعث دریافت برخی از اعلان‌ها خواهد شد که شما می‌توانید برخی از گزینه‌های امنیتی نصب MySQL خود را تغییر دهید. در این باره از شما سوال‌هایی پرسیده می‌شود که اولین سوال این است که آیا شما می‌خواهید افزونه Validate Password را تنظیم کنید یا نه.

این کار می‌تواند برای این امر استفاده شود که قدرت رمز خود را به منظور ورود به MySQL تست و امتحان کنید. چه شما انتخاب کنید چه نه، دستور بعدی این است که شما یک رمز عبور قوی را برای MySQL root user انتخاب و تنظیم کنید. رمز عبوری که از آن اطمینان کامل را دارید انتخاب کنید و سپس آن را به مرحله تایید برسانید.

حذف کاربر ناشناس و بالا بردن امنیت

بعد از این عملیات باید دکمه Y و سپس Enter را بزنید. این کار باعث خواهد شد تا شما به صورت پیش فرض تمامی سوال‌های بعدی را نیز بپذیرید. در نهایت هر کاربر ناشناسی و یا پایگاه داده آزمایشی حذف خواهند شد و ورود به سیستم از راه دور root غیر فعال می‌شود. سپس این قوانین جدید که توسط شما ساخته شده‌اند را بارگزاری می‌کند. MySQL نیز باید تمامی تغییرات ایجادشده توسط شما را بپذیرد.

اولیه سازی دایرکتوری داده

برای اولیه سازی دایرکتوری داده‌ MySQL می‌توانید از دستور mysql_install_db بهره ببرید. این مورد برای استفاده در نسخه‌های قبل از 5.7.6 هستند. همچنین دستور mysqld به منظور اولیه سازی در نسخه‌های بعد از 5.7.6 مورد استفاده خواهد بود.

کار خودکار دایرکتوری

با این حال اگر MySQL را از توزیع Debian نصب کرده‌اید، دایرکتوری داده را به طور خودکار آغاز می‌کند. شما مجبور به انجام هیچ کاری نیستید. به هر حال اگر بخواهید دستوری را اجرا کنید، آنگاه با خطای زیر رو به رو می‌شوید و برای شما ارسال خواهد شد:

mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 17 - File exists)
. . .
2018-04-23T13:48:00.572066Z 0 [ERROR] Aborting

توجه داشته باشید که اگر یک رمز عبور را برای root MySQL user تنظیم کرده‌اید، این یوزر برای تایید اعتبار با گذرواژه در هنگام اتصال به MySQL shell پیکربندی نشده است. اگر می‌خواهید این تنظیمات را پیکربندی و تنظیم کنید، می‌توانید به مطالبی که در مرحله 3 گفته شده‌اند توجه نمایید.

مرحله 3: تنظیم اختیاری تایید اعتبار کاربر و امتیازات

در سیستم های اوبنتو که نسخه‌های MySQL 5.7 و جدیدتر از آن را اجرا می‌کنند، the root MySQL user به منظور تایید اعتبار با استفاده از افزونه auth_socket به صورت پیش فرض به جای گذر واژه استفاده می‌شود. این مورد در مواقعی استفاده می‌شود که از امنیت و قابلیت بیشتری برخوردار هستند. همچنین این مورد می‌تواند مواردی که شما نیاز به دسترسی به یک برنامه خارجی را دارید، پیچیده‌تر کند. از برنامه‌های خارجی می‌توان به phpMyAdmin اشاره کرد.

تغییر روش تایید اعتبار

برای اینکه از رمز عبور برای وصل شدن به MySQL به عنوان root استفاده کنید، باید روش تایید اعتبار آن را از auth_socket به mysql_native_password تغییر و سوییچ دهید.
برای اینکار نیاز است تا اعلان MySQL را از terminal خود باز کنید. برای اینکار باید دستور زیر را وارد کنید:

sudo mysql

بعد از این کار باید بررسی کنید که کدام روش تایید اعتبار هر کدام از اکانت‌های MySQL user شما استفاده می‌شود. برای اینکار دستور زیر را به کار ببرید:

Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user

بازده‌ای که شما مشاهده خواهید کرد به صورت زیر است:

Output
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

مثال تایید اعتبار حساب روت

در این مثال می‌بینید که کاربر root با استفاده از افزونه auth_socket تایید اعتبار می‌کند. برای اینکه بتوانید حساب root خود را برای تایید اعتبار همراه با یک رمز عبور پیکربندی کنید، باید دستور ALTER USER را اجرا کنید.

اطمینان از انتخاب رمز عبور قوی

در اینجا باید مطمئن شوید تا رمز عبورتان را به نوع قوی‌تری تغییر داده‌اید. این خط فرمان رمز root شما را که در مرحله دو تنظیم کرده‌اید را تغییر می‌دهد.
دستور مورد نیاز برای این کار به صورت زیر می‌باشد:

Mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'

اجرای FLUSH PRIVILEGES

سپس باید FLUSH PRIVILEGES را اجرا کنید. این دستور به سرورها این وظیفه را می‌دهد تا بارگیری‌های مجدد را انجام دهند و تغییرات جدیدی را که اعمال نموده‌اید را تنظیم کند.
دستوری که باید آن را به اجرا برسانید همانند زیر است:

Mysql> FLUSH PRIVILEGES

روش‌های تایید اعتبار هر کدام از کاربران را دوباره چک کنید تا root از افزونه auth_socket برای احراز هویت خود استفاده نکند.

Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user

بازده‌ای که خواهید دید به صورت زیر می‌باشد:

Output
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

مثال تایید اعتبار root MySQL user

در این مثال می‌توانید متوجه این شوید که root MySQL user با استفاده از یک رمز عبور تایید اعتبار می‌کند. بعد از اینکه این موضوع بر روی سرور شما تایید شد، می‌‌توانید از MySQL shell خارج شوید. همانند دستور زیر:

Mysql> exit

از طرفی دیگر برخی از افراد بر این باور هستند که داشتن یک کاربر اختصاصی مناسب‌ترین راه برای گردش کار و یا workflow است تا بتواند به MySQL اتصال پیدا کند. اگر می‌خواهید همچین کاربری را ایجاد کنید بار دیگر باید MySQL shell را باز نمایید. پس از باز کردن کافیست دستور زیر را در آن وارد کنید:

sudo mysql

نکته: اگر احراز هویت رمز عبور را برای root فعال کرده‌اید، همانطور که در پاراگراف‌های قبلی توضیح داده شد، برای اینکه بتوانید به MySQL shell دسترسی پیدا کنید، باید از دستور دیگری استفاده کنید. دستوری که در ادامه آورده خواهد شد MySQL client شما را با داشتن حق امتیاز به طور منظم اجرا می‌کند و شما تنها با تایید اعتبار در گرفتن امتیازات سرپرست در بانک اطلاعاتی موفق خواهید بود. برای تمام موارد ذکرشده تنها باید دستور زیر را وارد کنید:

mysql -u root -p

ساخت و تعیین کاربر جدید و رمز عبور

از همین جا می‌توانید یک کاربر جدید را بسازید و یک رمز عبور بسیار قوی نیز برای آن تعیین کنید. برای این کار باید دستور زیر را به اجرا برسانید:

Mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password'

پس از این کار باید امتیازات مناسبی را به کاربر جدید خود اعطا کنید. به عنوان مثال می‌توانید امتیازت کاربر را به مواردی همچون جداول موجود در دیتابیس،اضافه کردن، تغییر و حذف امتیازات کاربران دیگر اختصاص دهید.

دستور زیر مناسب این کار است:

Mysql> GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION

در این مرحله به این موضوع باید توجه کنید که دیگر نیازی به استفاده از اجرای فرمان FLUSH PRIVILEGES ندارید. فقط در صورتی به این دستور احتیاج خواهید داشت که grant tables شما عباراتی همچون INSERT, UPDATE, و یا DELETE را داشته باشد.

به این دلیل که شما به جای تغییر دادن کاربر موجود، نوع جدیدی از آن را ایجاد کرده‌اید، دیگر هیچ نیازی به کار با FLUSH PRIVILEGES ندارید و عملا غیر ضروری است.
اگر از این دستورالعمل پیروی کنید، از MySQL shell خارج خواهید شد. همانند دستور زیر:

Mysql> exit

در آخر برای اینکه از تمامی موارد اطمینان حاصل کنید بهتر است بار دیگر نصب MySQL را امتحان و تست کنید.

مرحله 4: تست MySQL

صرف نظر از نحوه نصب آن، MySQL باید به صورت خودکار شروع به کار کند. برای تست کردن این موضوع، به بررسی وضعیت آن بپردازید. برای اینکار دستور زیر مورد نیاز است:

systemctl status mysql.service

سپس باید نتیجه‌ای همانند آنچه در دستور زیر وجود دارد ببینید:

Output
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: en
   Active: active (running) since Wed 2018-04-23 21:21:25 UTC; 30min ago
 Main PID: 3754 (mysqld)
    Tasks: 28
   Memory: 142.3M
      CPU: 1.994s
   CGroup: /system.slice/mysql.service
           └─3754 /usr/sbin/mysqld

فعال کردن MySQL

اگر MySQL شما در حال اجرا نیست، می‌توانید آن را با استفاده از دستور sudo systemctl start mysql شروع کنید.

انجام بررسی اضافی

برای بررسی اضافی می‌توانید با استفاده از ابزار mysqladmin به پایگاه داده متصل شوید. این ابزار نوعی client به شمار می‌رود که به شما این امکان را می‌دهد تا دستورات اداری را اجرا کنید و به پایگاه داده نیز وصل شوید.

به عنوان مثال این دستور می‌گوید برای اینکه MySQL را به عنوان یک root (-u root) اتصال دهید با استفاده از (-p) گذرواژه را وارد کنید و سپس آن را به نسخه بازگردانید.

برای اینکار باید دستور زیر را وارد کنید:

sudo mysqladmin -p -u root version

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

Output
mysqladmin  Ver 8.42 Distrib 5.7.21, for Linux on x86_64
Copyright (c) 2000, 2018, 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      5.7.21-1ubuntu1
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         30 min 54 sec

Threads: 1  Questions: 12  Slow queries: 0  Opens: 115  Flush tables: 1  Open tables: 34  Queries per second avg: 0.006

این بدان معناست که MySQL در حال اجراست.

با یادگیری نصب MySQL بر روی Ubuntu 18.04 می توانید فضای امنیتی را بالا ببرید و در صورت نیاز به آن استفاده‌های بی‌شماری از آن داشته باشید.

جمع بندی

نصب mySQL در Ubuntu 18.04 مطلبی بود که در این مقاله آموزش لینوکس از سری مقالات آموزش سیستم عامل وبلاگ پارس‌پک، به آن پرداخته شد. با استفاده از تمام مراحلی که گفته شد شما می‌توانید تنظیم اولیه MySQL را در سرور خود به انجام برسانید. اگر شما به این سرویس نیاز داشته باشید، بدون شک این مطالب می‌تواند به شما بسیار کمک کند. به همین علت اگر بتوانید به خوبی دستورالعمل‌ها را وارد کنید و از آن‌ها در جای مناسب خود استفاده کنید، می‌توانید تمام نیازهای خود را با استفاده از آن‌ها بر آورده کنید.

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

سوالات متدوالی در رابطه با نصب my SQL در اوبونتو 18.04 وجود دارد و همواره دستورالعمل‌های مربوط به آن مورد بررسی کاربران بوده‌اند. به همین علت در ادامه به چند نمونه از این سوالات خواهیم پرداخت.

1. برای آپدیت کردن مخازن اوبنتو از چه دستوری استفاده می‌شود؟

برای اینکه بتوانید مخازن اوبنتو را اپدیت کنید، نیاز است تا دستور زیر را وارد کنید:

Apt update

2. برای اینکه بتوان پکیج MySQL را دانلود و نصب کرد، به چه دستوری نیاز است؟

دستوری که برای دانلود و نصب پکیج MySQL مورد نیاز است، به شرح زیر است:

Apt install mysql-server

3. چه دستوری برای راه اندازی تنظیمات MySQL باید وارد شود؟

پس از اینکه نصب MySQL به اتمام رسید نیاز به وارد کردن دستور برای راه اندازی تنظیمات است که به صورت زیر می‌باشد:

Mysql-secure-installation

4. برای تست بررسی وضعیت سرور از چه دستوری باید استفاده گردد؟

برای اینکه از صحت کار خود اطمینان پیدا کنید، باید وضعیت سرور را بررسی نمایید. برای اینکار باید دستور زیر را وارد کنید:

Systemct1 status mysql.service