آموزش MySQL در Ubuntu 18.04

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

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

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

موضوعات

پیش نیازها

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

  • در ابتدا باید یک سرور 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 با استفاده از یک رمز عبور تایید اعتبار می‌کند. بعد از اینکه این موضوع بر روی سرور شما تایید شد، می‌‌توانید از 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 می توانید فضای امنیتی را بالا ببرید و در صورت نیاز به آن استفاده‌های بی‌شماری از آن داشته باشید.

جمع بندی

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

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

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

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

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

Apt update

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

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

Apt install mysql-server

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

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

Mysql-secure-installation

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

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

Systemct1 status mysql.service
  • با خدمات ابری پارس آشنا شوید

    اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم

    ابر سرور

    ابر سرور

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

    هایبرید سرور

    هایبرید سرور

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

    ماکرو سرور

    ماکرو سرور

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

    هاست ابری

    هاست ابری

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

    هاست دانلود

    هاست دانلود

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

    مطالعه این مطالب نیز پیشنهاد می‌شود

    مقالات و نظرات اعضای تیم ما درباره تکنولوژی، روزهای کاری و چیزای دیگر…

    تفاوت هاست لینوکس و ویندوز

    یکی از چالش‌های مهم مدیران وب‌سایت‌ها، در هنگام خرید هاست و راه‌اندازی وب‌سایت، انتخاب نوع سیستم‌ عامل هاست است. ارائه‌دهندگان خدمات میزبانی وب و هاست...

    چک لیست امنیت وردپرس

    امنیت وردپرس یکی از موضوعاتی است که اهمیت بسیار بالایی برای مدیران وب‌سایت‌های وردپرسی دارد. گزارشات نشان می‌دهند که در هر دقیقه بیش از ۹۰ هزار وب‌سای...

  • کلیه حقوق برای شرکت دانش بنیان پارس پک محفوظ می باشد.

    Copyright © 2019 Pars Parva System Ltd. ParsPack Cloud Computing Technology ® , All Rights Reserved.