تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

نحوه نصب MySQL در اوبونتو (راهنمای گام به گام)


۲۳ مرداد ۱۴۰۴

MySQL، یک سیستم مدیریت پایگاه داده رابطه‌ای منبع‌باز و پیشرو، انتخابی بی‌نظیر برای توسعه‌دهندگانی است که به دنبال عملکرد، مقیاس‌پذیری و پایداری هستند. این سیستم، که بخش جدایی‌ناپذیر از مجموعه محبوب (Linux , Apache MySQL , PHP , Python , Perl) LAMP به شمار می‌رود، با استفاده از زبان پرس‌وجوی ساختاریافته (SQL) امکان مدیریت داده‌ها را با دقت و سرعت فراهم می‌کند.

در این آموزش از بلاگ لیارا، شما را مرحله به مرحله با فرآیند نصب MySQL نسخه 8.0 بر روی سرور اوبونتو 20.04 آشنا خواهیم کرد. با اتمام این راهنما، یک پایگاه داده رابطه‌ای آماده و کاربردی در اختیار خواهید داشت.

با سرور ابو نتو لیارا، بدون دردسر سرور خود را تنها با چند کلیک مدیریت کنید.
✅ منابع کاملاً اختصاصی و پایدار✅ سرعت بالا و ترافیک نامحدود✅ امنیت پیشرفته و پشتیبانی 24/7
خرید و راه‌اندازی سرور اوبونتو ساعتی لیارا

آنچه در ادامه خواهید خواند:

  • پیش نیازها
  • مرحله اول: نصب MySQL
  • مرحله دوم: پیکربندی MySQL
  • مرحله سوم: ساخت کاربر اختصاصی MySQL و اعطای دسترسی ها
  • مرحله چهارم: بررسی MySQL
  • نصب MySQL در مقابل MariaDB در اوبونتو
  •  خطاها و اشکال‌ زدایی‌های رایج در نصب MySQL در اوبونتو
  • شکست نصب MySQL: وابستگی‌های گمشده
  • پیش نیاز های سیستمی برای نصب MySQl بر روی اوبونتو
  • نصب MySQL با داکر بر روی اوبونتو
  • بهینه سازی عملکرد MySQL بعد از نصب
  • سوالات متداول
  • جمع بندی

پیش نیازها:

برای دنبال کردن این آموزش به موارد زیر نیاز خواهید داشت:

یک سرور اوبونتو با یک کاربر غیر روت (Non-root) با دسترسی‌های مدیریتی و فایروال پیکربندی شده با UFW

برای راه اندازی این موارد نیازی نیست نگران باشید کافی است تا آموزش نحوه راه‌اندازی اولیه سرور مجازی با اوبونتو Ubuntu را با دقت مطالعه کنید و مراحل آن را دنبال کنید.

نصب MySQL بر  اوبونتو

مرحله اول: نصب MySQL

در اوبونتو، می‌توانید MySQL را با استفاده از مخزن بسته های APT نصب کنید. برای انجام این عمل بایستی، ابتدا فهرست بسته ها را در سرور خود به روز رسانی کنید، اگر اخیرا این فرآیند را انجام نداده‌‎اید:

sudo apt update

سپس بعد از آن می‌توانید بسته mysql-server را نصب کنید.

sudo apt install mysql-server

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

راهنمای کامل نصب سرور باکولا (Bacula) بر روی اوبونتو 24.04
نصب سرور باکولا (Bacula)

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

به شما توصیه خواهیم کرد تا اسکریپت امنیتی که توسط DBMS ارائه می‌شود را اجرا کنید. این اسکریپت برخی از گزینه های پیش فرض کم ایمن، مانند ورود ریمو کاربر root را تغییر می‌دهد.

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

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

... Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

New password:

این امر باعث می‌شود که اسکریپت وارد یک حلقه بازگشتی شود و تنها با بستن پنجره ترمینال می‌توانید از آن خارج شوید.

اسکریپت mysql_secure_installation برای اقدامات دیگری نیز تعبیه شده است آن هم ایمن نگه داشتن نصب MySQL است. به شما توصیه خواهیم کرد که آن را قبل از استفاده از MySQL برای مدیریت داده های خود اجرا کنید.

نکته حائز اهمیت: برای اینکه بتوانید از ورود به این حلقه های بازشتی جلوگیری کنید، ابتدا باید نجوه احراز هویت کاربر روت MySQL را تنظیم کنید.

برای این عمل ابتدا بایستی خط فرمان MySQL را باز کنید.

sudo mysql

بعد از آن دستور زیر را اجرا کنید تا روش احراز هویت کاربر روت به روشی تغییر کند که از رمز عبور استفاده می‌کند. به عنوان مثال در روش زیر احراز هویت را به mysql_native_password تغییر می‌دهد.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

بعد از تمامی تغییرات، از خط فرمان MySQL خارج شوید.

exit

حال که از آن خارج شدید، می‌توانید اسکریپت mysql_secure_installation را بدون هیچ گونه مشکلی اجرا کنید.

می‌توانید بار دیگر MySQL را باز کرده و روش احراز هویت کاربر روت را به حالت پیش‌فرض  auth_socket بازگردانید. برای احراز هویت به‌عنوان کاربر Root در MySQL با استفاده از رمز عبور، این دستور را اجرا کنید:

mysql -u root -p

برای بازگشت به روش احراز هویت به صورت پیش فرض، باید از دستور زیر استفاده کنید.

ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;

نکته: این کار باعث می‌شود تا بتوانید دوباره به عنوان کاربر Root در MySQL با استفاده از دستور sudo mysql به MySQL متصل شوید.

حال فرآیندی که باید انجام دهید این است که اسکریپت امنیتی را با sudo اجرا کنید.

sudo mysql_secure_installation

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

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

حال در این میان نکاتی وجود دارد:

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

مانند:

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

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

Please set the password for root here.


New password:

Re-enter new password:

توجه داشته باشید که جتی اگر رمز عبوری برای کاربر Root در MySQL تنظیم کرده باشید، این کاربر در حال حاضر برای احراز هویت با رمز عبور در زمان اتصال به پوسته MySQL پیکربندی نشده است.

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

نکته: اگر از قدرت رمز عبور وارد شده راضی هستید، برای ادامه اسکریپت کلید 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 و سپس ENTER را وارد کنید تا به صورت کاملا پیش‌فرض پذیرفته شوند. این کار:

  • تعدادی از کاربران ناشناس و پایگاه داده آزمایشی را حذف می‌کند
  • ورود ریوت Root را غیرفعال می‌کند

این قوانین جدید را بارگذاری می‌کند تا MySQL فورا تغییرات اعمال شده را رعایت کند.

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

آموزش بکاپ، بازیابی و انتقال دیتابیس MongoDB در اوبونتو 20.04
انتقال دیتابیس MongoDB در اوبونتو

مرحله سوم: ساخت کاربر اختصاصی MySQL و اعطای دسترسی ها

بعد از نصب، MySQL یک حساب کاری Root را می2سازد که می‌توانید از آن برای مدیریت پایگاه داده خود استفاده کنید.

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

در سیستم های اوبونتو که MySQL نسخه 5.7 و نسخه های بعدی را اجرا می‌کند، کاربر root به صورت پیش فرض برای احراز هویت با افزونه auth_socket تنظیم شده است، نه با رمز عبور. این افزونه مشخص می‌کند که نام کاربر سیستم عاملی که کلاینت MySQL را فراخوانی می‌کند با نام مشخص شده مطابقت داشته باشد، بنابراین باید با امتیازات sudo به کلاینت mysql دسترسی پیدا کنید تا به کاربر روت MySQL دسترسی داشته باشید.

sudo mysql

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

mysql -u root -p

در زمانی که به خطر فرمان MySQL دسترسی های لازم را پیدا کرده اید، می‌توانید با استفاده از دستور  CREATE USER یک کاربر جدید ایجاد کنید. این دستورات از این سینتکس کلی پیروی می‌کنند:

CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';

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

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

به عنوان جایگزین، می‌توانید بخش WITH authentication_plugin را به صورت کامل حذف کنید تا کاربر با افزونه پیش‌فرض MySQL، یعنی caching_sha2_password، احراز هویت شود. مستندات MySQL این افزونه را برای کاربرانی که می‌خواهند با رمز عبور وارد شوند به دلیل ویژگی‌های امنیتی قوی آن توصیه می‌کند.

دستور زیر را برای ایجاد کاربری که با caching_sha2_password احراز هویت می‌کند اجرا کنید. به یاد داشته باشید که باید sammy را به نام کاربری دلخواه خود و password را به یک رمز عبور قوی تغییر دهید:

CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

توجه داشته باشید که در برخی از نسخه های PHP با caching_sha2_password مشکلاتی دارند. اگر قصد دارید از این پایگاه داده با برنامه‌ای PHP مانند phpMyAdmin استفاده کنید، ممکن است بخواهید کاربری ایجاد کنید که با افزونه قدیمی‌تر اما همچنان امن mysql_native_password احراز هویت کند برای این چالش نیز راه حلی وجود دارد.

CREATE USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

اگر در این قسمت اطمینان کامل را ندارید، می‌‎توانید همیشه کاربری بسازید که با caching_sha2_password احراز هویت کند و سپس بعداً با این دستور آن را تغییر دهید.

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

GRANT PRIVILEGE ON database.table TO 'username'@'host';

مقدار PRIVILEGE در این سینتکس، مشخص می‌کند که کاربر اجازه انجام چه اقداماتی روی پایگاه داده و جدول مشخص‌شده را دارد. می‌توانید چندین امتیاز را در یک دستور به یک کاربر بدهد، با جدا کردن هر یک با کاما. همچنین می‌توانید با وارد کردن ستاره (*) به جای نام پایگاه داده و جدول، امتیازات را به‌صورت سراسری به کاربر اعطا کنید. در SQL، ستاره‌ها کاراکترهای ویژه‌ای هستند که نشان‌دهنده همه پایگاه‌های داده یا جداول هستند.

به‌عنوان مثال، دستور زیر به کاربر امتیازات سراسری برای ایجاد، تغییر و حذف پایگاه‌های داده، جداول و کاربران، و همچنین قدرت درج، به‌روزرسانی و حذف داده‌ها از هر جدول در سرور را می‌دهد. همچنین به کاربر امکان اجرای پرس‌وجوهای داده با SELECT، ایجاد کلیدهای خارجی با کلمه‌کلیدی REFERENCES و انجام عملیات FLUSH با امتیاز RELOAD را می‌دهد. با این حال، باید فقط امتیازاتی را به کاربران اعطا کنید که به آنها نیاز دارند، بنابراین در صورت لزوم امتیازات کاربر خود را تنظیم کنید.

لیست کامل امتیازات موجود را می‌توانید در مستندات رسمی MySQL پیدا کنید.

این دستور GRANT را اجرا کنید و sammy را با نام کاربر MySQL خود جایگزین کنید تا این امتیازات را به کاربر خود اعطا کنید:

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, INDEX, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

توجه داشته باشید که این دستور شامل WITH GRANT OPTION نیز هست. این گزینه به کاربر MySQL شما اجازه می‌دهد تا هر امتیازی که دارد را به سایر کاربران در سیستم اعطا کند.

نکته مهم: امکان دارد تعدادی از کاربران بخواهند امتیاز  را به کاربر MySQL خود اعطا کنند که امتیازات گسترده‌ای مشابه امتیازات کاربر روت به آنها می‌دهد، مانند این:

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

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

پس از این، بهتر است دستور FLUSH PRIVILEGES را اجرا کنید. این کار هر حافظه‌ای که سرور به دلیل دستورات CREATE USER و GRANT قبلی کش کرده است را آزاد می‌کند.

FLUSH PRIVILEGES;

برای خارج شدن از کلاینت می‌توانید از دستور زیر استفاده کنید.

exit

برای ورود به عنوان کاربر جدید MySQl خود، از دستوری مانند زیر استفاده کنید.

mysql -u sammy -p
چگونه یک پایگاه داده ریموت را برای بهینه‌سازی عملکرد سایت با MySQL روی سرور مجازی اوبونتو راه‌اندازی کنیم؟
بهینه‌سازی عملکرد سایت با MySQL روی سرور مجازی اوبونتو

مرحله چهارم: بررسی MySQL

MySQL باید به صورت خودکار شروع به کار کرده باشد. برای آزمایش این موضوع، می‌توانید وضعیت آن را بررسی کنید.

systemctl status mysql.service

خروجی زیر را نشان شما خواهد داد.

● 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
             └─10382 /usr/sbin/mysqld

حال نکته ای که وجود دارد این است که اگر MySQL در حال اجرا نباشد، می‌توانید آن را با دستور زیر راه اندازی کنید.

sudo mysqladmin -p -u sammy version

برای بررسی بیشتر، می‌توانید با استفاده از ابزار mysqladmin که یک کلاینت برای اجرای دستورات مدیریتی است، به پایگاه داده متصل شوید. به‌عنوان مثال، این دستور می‌گوید که به‌عنوان کاربر MySQL به نام sammy (-u sammy) متصل شوید، برای رمز عبور (-p) درخواست شود و نسخه را بازگرداند. حتماً sammy را به نام کاربر اختصاصی MySQL خود تغییر دهید و رمز عبور آن کاربر را هنگام درخواست وارد کنید:

خروجی زیر را مشاهده خواهید کرد.

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        8.0.19-0ubuntu5
Protocol version    10
Connection        Localhost via UNIX socket
UNIX socket        /var/run/mysqld/mysqld.sock
Uptime:            10 min 44 sec

Threads: 2  Questions: 25  Slow queries: 0  Opens: 149  Flush tables: 3  Open tables: 69  Queries per second avg: 0.038

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

نصب MySQL در مقابل MariaDB در اوبونتو

 و MariaDB دو مورد از محبوب‌ترین سیستم‌های مدیریت پایگاه داده رابطه‌ای منبع‌باز (RDBMS) هستند که برای ذخیره و مدیریت داده‌های ساختاریافته استفاده می‌شوند. این دو به صورت اختصاصی در برنامه‌های وب استفاده می‌شوند و به دلیل عملکرد بالا، مقیاس‌پذیری و قابلیت اطمینان شناخته شده‌اند.

ویژگیMySQLMariaDB
مجوزGPLGPL
موتورهای ذخیره‌سازیInnoDB، MyISAM، Memory و غیرهInnoDB، Aria، TokuDB و غیره
عملکردبهینه‌شده برای عملکرد بالا و مقیاس‌پذیریعملکرد بهبودیافته با بهینه‌سازی بهتر پرس‌وجوها
امنیتتمرکز قوی بر امنیت با ویژگی‌هایی مانند رمزنگاری SSL/TLSویژگی‌های امنیتی بهبودیافته، از جمله هش رمز عبور و رمزنگاری بهتر
تکثیر (Replication)پشتیبانی از Master-Slave و Master-Masterپشتیبانی از Master-Slave و Master-Master با عملکرد بهبودیافته
انشعاب (Fork)متعلق به Oracle، با تمرکز بیشتر تجاریانشعاب مبتنی بر جامعه از MySQL، با تمرکز بر متن‌باز
موتور ذخیره‌سازی پیش‌فرضInnoDB، شناخته‌شده برای قابلیت‌های تراکنشیAria، طراحی‌شده برای عملکرد بالا و قابلیت اطمینان
کاراکترست پیش‌فرضutf8mb4، پشتیبانی از طیف گسترده‌ای از زبان‌هاutf8mb4، تضمین سازگاری با انواع زبان‌ها
سینتکس SQLپشتیبانی از طیف گسترده سینتکس‌ها و ویژگی‌های SQLسازگار با سینتکس MySQL، همراه با ویژگی‌ها و بهبودهای اضافی
پشتیبانی جامعهجامعه بزرگ و مستندات گستردهجامعه فعال با تمرکز بر همکاری و توسعه متن‌باز
سازگاریسازگار با طیف وسیعی از پلتفرم‌ها و ابزارهاسازگار با ابزارها و پلتفرم‌های MySQL، با پشتیبانی بیشتر از فناوری‌های متن‌باز

 خطاها و اشکال‌ زدایی‌های رایج در نصب MySQL در اوبونتو

در ادامه تمامی این خطاها را به صورت کامل بررسی خواهیم کرد.

عدم راه اندازی سرویس MySQL

اگر سرویس MySQL راه اندازی نشود، می‌توانید مراحل زیر را برای عیب یابی و رفع مشکل امتحان کنید.

  • بررسی لاگ خطای MySQL: برای هر گونه خطا یا هشداری که ممکن است علت مشکل را به شما نشان دهد، می‌توانید این کار را با اجرای دستور زیر در ترمینال انجام دهید.
sudo grep 'error' /var/log/mysql/error.log

و تایید کنید که با فرمت مورد نظر شما مطابقت های لازم را دارد.

  • بررسی تفاوت های پورت ها: بررسی کنید که آیا سرویس MySQL در حال حاضر تحت کاربر دیگری اجرا می‌شود یا فرآیند های دیگری را از همان پورت استفاده می‌کنند. می‌توانید این کار را با اجرای دستور زیر انجام دهید.
sudo service mysql start 

یا

sudo systemctl start mysql

خطاهای افزونه احراز هویت

خطاهای افزونه احراز هویت ممکن است که به دلیل مشکلات سازگاری بین نسخه های کلاینت و سرور MySQL ایجاد شود. برای رفع این مشکل می‌توانید

تایید سازگاری نسخه: مطمئن شوید که نسخه های کلاینت و سرور MySQL سازگار هستند. می‌توانید نسخه سرور MySQL را با اجرای دستور زیر بررسی کنید.

  sudo mysql -V

و نسخه کلاینت را با:

mysql -V

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

SELECT @@default_authentication_plugin;

به روز رسانی یا تغییر افزونه احراز هویت: سعی کنید تا از افزونه احراز هویت متفاوتی استفاده کنید یا کلاینت MySQL را به نسخه سازگار به روز رسانی کنید.

به عنوان مثال، می‌توانید کلاینت MySQL را با اجرای دستور زیر به روز رسانی کنید.

sudo apt update && sudo apt install mysql-client
نحوه نصب انجین ایکس، MySQL و پی اچ پی (LEMP) بر روی سرور مجازی لینوکس
انجین ایکس، MySQL و پی اچ پی (LEMP)

شکست نصب MySQL: وابستگی‌های گمشده

اگر نصب MySQL به دلیل فقدان وابستگی‌ها ناموفق باشد، می‌توانید مراحل زیر را برای رفع مشکل امتحان کنید:

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

sudo apt update && sudo apt install mysql-server

و خروجی را برای هر گونه پیام خطا بررسی کنید.

نصب وابستگی‌های گمشده: از مدیر بسته برای نصب وابستگی‌های گمشده استفاده کنید. به‌عنوان مثال، اگر پیام خطا نشان دهد که libssl1.1 گمشده است، می‌توانید آن را با اجرای دستور زیر نصب کنید:

sudo apt install libssl1.1

بررسی به روز بودن مدیر: مطمئن شوید که مدیر بسته به‌روز است و همه بسته‌ها به‌درستی نصب شده‌اند. می‌توانید این کار را با اجرای دستور زیر انجام دهید:

sudo apt update && sudo apt full-upgrade

پیش نیاز های سیستمی برای نصب MySQl بر روی اوبونتو

قبل از نصب MySQL، مطمئن شوید که سیستم شما نیازمندی های زیر را برآورده خواهد کرد.

  • سیستم عامل: اوبونتو 18.04 یا جدیدتر (64 بیتی)
  • پردازنده: پردازنده دو هسته ای 2 گیگاهرتز
  • حافظه: 4 گیگابایت رم (8 گیگابایت یا بیشتر توصیه خواهیم کرد)
  • فضای ذخیره سازی: 2 گیگابایت فضای دیسک آزاد (برای پایگاههای داده بزرگ تر، فضای بیشتری نیز توصیه می‌شود)
  • نرم افزار: سرور اوبونتو یا دسکتاپ سازگار

نصب MySQL با داکر بر روی اوبونتو

برای اینکه بتوانید این فرآیند را انجام دهید مراحل زیر را با دقت انجام دهید.

نصب داکر:

   sudo apt update && sudo apt install docker.io

کشیدن تصویر MySQL:

sudo docker pull mysql

اجرای کانتینر MySQL:

sudo docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql

تاییدیه نصب:

sudo docker exec -it mysql mysql -uroot -ppassword

بهینه سازی عملکرد MySQL بعد از نصب

پس از نصب آن، مراحل زیر را برای بهینه ساختن عملکرد آن انجام دهید.

بهینه‌سازی فایل پیکربندی MySQL:  تنظیمات را در /etc/mysql/my.cnf برای بهینه‌سازی عملکرد بر اساس منابع سیستم خود تنظیم کنید.

  • استفاده از موتور ذخیره‌سازی مناسب: موتور ذخیره‌سازی مناسب برای پایگاه داده خود، مانند MyISAM برای بارهای کاری تراکنشی، انتخاب کنید.
  • ایجاد ایندکس برای جداول: ایندکس‌هایی را برای ستون‌هایی که اغلب پرس‌وجو می‌شوند ایجاد کنید تا عملکرد پرس‌وجو بهبود یابد.
  • به‌روزرسانی منظم آمار: دستور ANALYZE TABLE را اجرا کنید تا آمار جداول به‌روزرسانی شود و بهینه‌سازی پرس‌وجو بهبود یابد.
  • نظارت بر عملکرد: از ابزارهایی مانند mysqladmin یا sysdig برای نظارت بر عملکرد MySQL و شناسایی گلوگاه‌ها استفاده کنید.

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

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

چگونه می توان SQL را در ترمینال اوبونتو نصب کرد؟

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

sudo apt update && sudo apt install mysql-server

این کار سرور MySQL را روی سیستم اوبونتو شما نصب خواهد کرد.

چگونه میتوان MySQL Workbench را در اوبونتو 20.04 با استفاده از ترمینال نصب کرد؟

برای نصب MySQL Workbench در اوبونتو 20.04، دستور زیر را در ترمینال اجرا کنید:

sudo apt update && sudo apt install mysql-workbench

این کار MySQL Workbench را روی سیستم اوبونتو 20.04 شما نصب خواهد کرد.

چگونه می توان یک پایگاه داده MySQL راه‌اندازی کرد؟

برای راه‌اندازی یک پایگاه داده MySQL، مراحل زیر را دنبال کنید:

1. ابتدا مطمئن شوید که MySQL نصب و در حال اجرا است.

2. ترمینال را باز کنید و با استفاده از دستور زیر به سرور MySQL متصل شوید:

   sudo mysql -u root -p

   رمز عبور روت را هنگام درخواست وارد کنید.

3. پس از اتصال، یک پایگاه داده جدید با استفاده از دستور SQL زیر ایجاد کنید:

   CREATE DATABASE mydatabase;

4. برای استفاده از پایگاه داده جدید، دستور SQL زیر را اجرا کنید:

   USE mydatabase;

اکنون می‌توانید جداول ایجاد کرده و داده‌ها را به پایگاه داده خود وارد کنید.

رمز عبور پیش‌فرض روت MySQL در اوبونتو چیست؟

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

چگونه می توان MySQL را در اوبونتو شروع و متوقف کرد؟

برای شروع MySQL در اوبونتو، دستور زیر را در ترمینال اجرا کنید:

sudo service mysql start

برای توقف MySQL در اوبونتو، دستور زیر را اجرا کنید:

sudo service mysql stop

آیا می‌توان چندین نسخه MySQL را در اوبونتو نصب کرد؟

بله، می‌توانید با استفاده از داکر چندین نسخه MySQL را در اوبونتو نصب کنید. به‌عنوان مثال، برای نصب MySQL 5.7 و MySQL 8.0، دستورات زیر را اجرا کنید:

sudo docker run --name mysql57 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=password mysql:5.7
sudo docker run --name mysql80 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=password mysql:8.0

این کار MySQL 5.7 و MySQL 8.0 را در کانتینرهای جداگانه نصب و اجرا خواهد کرد.

جمع بندی

در این راهنما، با یک مسیر کاملا عملی و مرحله‌به‌مرحله برای نصب، پیکربندی و ایمن‌سازی MySQL در اوبونتو آشنا شدید. از نصب اولیه با APT و اجرای اسکریپت‌های امنیتی، تا ساخت کاربر اختصاصی، بررسی سلامت سرویس و حتی اجرای MySQL با داکر. اکنون شما نه‌تنها می‌توانید MySQL را روی اوبونتو به‌درستی نصب کنید، بلکه قادر خواهید بود آن را برای نیازهای پروژه‌تان ایمن و بهینه سازید.

به اشتراک بگذارید

برچسب‌ها: