آموزش ارائه دسترسی ریموت به MySQL

آموزش ارائه دسترسی ریموت به MySQL

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

پیکربندی اولیه برای ارائه دسترسی به ریموت MySQL

یکی از مشکلات رایجی که کاربران هنگام راه‌اندازی دیتابیس MySQL از راه دور با آن مواجه هستند، این است که نمونه MySQL آن‌ها فقط برای گوش‌دادن به اتصالات محلی (Local) پیکربندی شده است. این حالت جزو تنظیمات پیش‌فرض MySQL است؛ اما هنگام راه‌اندازی دیتابیس از‌طریق ریموت باید تغییر کند؛ زیرا MySQL باید بتواند به IP خارجی سرور گوش دهد.

راهنمای گام به گام دسترسی ریموت به دیتابیس MySQL

برای فعال‌سازی این بخش، با دستور زیر فایل mysqld.cnf خود را باز کنید:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

خطی را پیدا کنید که با دستور bind-address شروع می‌شود:

. . .
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1
. . .

به‌طور‌پیش‌فرض، این مقدار روی IP محلی یعنی ۱۲۷.۰.۰.۱ تنظیم شده است. این یعنی سرور فقط اتصالات محلی را می‌پذیرد. شما باید این IP را با آدرس IP دیگری جایگزین کنید. برای تست و دی‌باگ می‌توانید این IP را روی آدرس IP wildcard تنظیم کنید؛ مثل یا *، :: یا 0.0.0.0:

. . .
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0
. . .

توجه: در نسخه‌های خاصی از MySQL، ممکن است دستورالعمل bind-address به‌طور‌پیش‌فرض در فایل mysqld.cnf نباشد. در این حالت، باید این دستورالعمل را در انتهای فایل خود به‌صورت دستی اضافه کنید:

. . .
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
log-error       = /var/log/mysql/error.log
bind-address            = 0.0.0.0

بعد از تغییر این خط، فایل را ذخیره کنید و ببندید. سپس، سرویس MySQL را مجدداً راه‌اندازی کنید تا تغییراتی که در mysqld.cnf انجام داده‌اید، اعمال شود:

sudo systemctl restart mysql

دسترسی ریموت به مای اس کیو‌ ال

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

MySQL چیست؟

پیکربندی حساب MySQL برای اتصال به ریموت

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

sudo mysql

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

mysql -u root -p

برای تغییر هاست کاربر می‌توانید از دستور RENAME USER در MySQL استفاده کنید. دستور زیر را اجرا کنید و مطمئن شوید که در آن به‌جای sammy، نام حساب کاربری خود، یعنی MySQL و به‌جای remote_server_ip، آدرس IP ریموت سرور خود را وارد کرده‌اید.

RENAME USER 'sammy'@'localhost' TO 'sammy'@'remote_server_ip';

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

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

توجه: دستور بالا کاربری ایجاد می‌کند که با افزونه پیش‌فرض احراز هویت MySQL (caching_sha2_password) را انجام می‌دهد. مشکل شناخته‌شده‌ای در برخی از نسخه‌های PHP وجود دارد که می‌تواند باعث ایجاد مشکل در این افزونه شود. اگر قصد دارید از این پایگاه داده با یکی از برنامه‌های PHP، مانند phpMyAdmin استفاده کنید، ممکن است بخواهید کاربری ریموت ایجاد کنید که به‌جای caching_sha2_password با افزونه قدیمی‌تر، یعنی mysql_native_password‌، احراز هویت می‌کند:

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

همچنین، می‌توانید با دستور ALTER کاربران دیگر را ویرایش کنید:

ALTER USER 'sammy'@'remote_server_ip' IDENTIFIED WITH mysql_native_password BY 'password';

سپس، به کاربر جدید امتیازهای متناسب با نیازهای خود اعطا کنید. دستور زیر به کاربر امتیازهای CREATE و  ALTER و DROP دیتابیس‌ها و جدول‌ها و کاربران و نیز امکان INSERT و  UPDATE و  DELETE داده‌ها را از هر جدولی در سرور اعطا می‌کند. همچنین، به کاربر امکان می‌دهد تا داده‌ها را با کوئری SELECT و کلیدهای خارجی را با REFERENCES ایجاد کند و عملیات FLUSH را به‌همراه RELOAD امتیازها انجام دهد. در‌هر‌صورت می‌توانید امتیازهای لازم را برای هر کاربر در نظر بگیرید:

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

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

FLUSH PRIVILEGES;

سپس می‌توانید با این دستور از کلاینت MySQL خارج شوید:

exit

درنهایت، با فرض اینکه فایروالی را روی سرور پایگاه داده خود پیکربندی کرده‌اید، باید پورت ۳۳۰۶، یعنی پورت پیش‌فرض MySQL را باز کنید تا به ترافیک MySQL اجازه دسترسی دهید.

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

sudo ufw allow from remote_IP_address to any port 3306

علاوه‌براین، با دستور زیر می‌توانید ازطریق هر آدرس IP به پایگاه داده MySQL خود اجازه اتصال دهید‌:

sudo ufw allow 3306

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

mysql -u user -h database_server_ip -p

توجه: اگر یک قانون فایروال را اضافه کرده‌اید که فقط از آدرس IP خاصی اجازه اتصال را بدهد، باید تنها با دستگاه مجاز متصل شوید.

اگر مشکلی در اتصال وجود داشت، احتمالاً به دستور bind-address در فایل پیکربندی MySQL مربوط است. لطفاً توجه کنید که تنظیم bind-address روی ۰.۰.۰.۰ ناامن است؛ زیرا امکان اتصال به سرور شما از هر آدرس IP را فراهم می‌کند. همچنین، اگر هنوز‌هم امکان دسترسی به MySQL ندارید، ممکن است مشکل از بخش‌های دیگر باشد.

آموزش اتصال به MySQL ازطریق Remote

جمع‌بندی

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

MySQL Replication یا تکرار داده در MySQL چیست و نوع همزمان آن چه تفاوتی با ناهمزمان دارد؟ در مقاله زیر بخوانید.

مقایسه Asynchronous Replication و Synchronous Replication

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

۱. چگونه از راه دور به MySQL متصل شویم؟

برای این کار مراحل زیر را دنبال کنید:

  • در سرور پایگاه داده خود، به‌عنوان کاربری با امتیازهای روت فایل پیکربندی MySQL خود را باز کنید.
  • در فایل پیکربندی bind-address را جست‌وجو کنید.
  • آدرس IP خود را وارد کنید و خارج شوید.
  • سرویس MySQL را مجدداً راه‌اندازی کنید.

۲. چگونه می‌توانیم از راه دور به پایگاه داده خود دسترسی داشته باشیم؟

برای افزودن کامپیوتر خود به‌عنوان میزبان دسترسی، وارد cPanel شوید. در قسمت Databases، روی نماد Remote MySQL® کلیک کنید. در صفحه Remote MySQL®، آدرس IP اتصال را وارد و سپس روی Add Host کلیک کنید.

۳. چگونه از راه دور به میزکار MySQL دسترسی داشته باشیم؟

MySQL Workbench را باز کنید. روی New Connection در سمت چپ پایین MySQL Workbench کلیک و سپس اطلاعات را برای اتصال وارد کنید.

۴. آیا سرور MySQL رایگان است؟

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

۵. آدرس IP سرور MySQL چیست؟

به‌طور‌پیش‌فرض هر سرور MySQL به آدرس IP محلی ۱۲۷.۰.۰.۱ گوش می‌دهد و هر سرور MariaDB همه اتصالات را می‌پذیرد (یعنی ۰.۰. ۰.۰ گوش می‌دهد).

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

  • با خدمات ابری پارس پک آشنا شوید

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

    سرور ابری

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

    فضای ابری

    فضای ابری یا Cloud Storage، بستری امن و مطمئن با آپتایم بالا و دسترس پذیری بالا می‌باشد که می‌توانید داده‌ها واطلاعات خود را بر روی آن نگه داری کنید.فضای ذخیره‌سازی ابری پارس‌پک با بهره‌مندی از پروتکل S3 آمازون، با امنیت بالا در دسترس شما.

    هاست وردپرس

    هاست ابری وردپرس پارس پک سرویسی قوی و پایدار است که برای نصب و راه‌اندازی سیستم مدیریت محتوای وردپرس بهینه شده است. هاست wordpress با کنترل پنل DirectAdmin ارائه می‌شود که رابط کاربری گرافیکی ساده و راحتی دارد.

    خرید هاست ابری

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

    هاست دانلود

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

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

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

      • سرور مجازی SSD چیست؟ + معرفی ۵ مزیت مهم وی پی اس SSD
        سرور مجازی SSD به شما امکان می‌دهد تا اطلاعات خود را روی هارد SSD ذخیره کنید. درایورهای ذخیره‌سازی SSD سرعت بالایی را در اختیارتان قرار می‌دهند. برای آشنایی با سرور مجازی SSD با ما همراه باشید.
      • ۱۰ تفاوت سرور مجازی ایران و خارج؛ VPS ایران یا خارج کدام بهتر است؟
        بعد از اینکه در مورد نوعِ سرور از نظر نحوه‌ی تخصیص منابع تصمیم‌گیری کردید و نتیجه‌ی این تصمیم استفاده از سرور مجازی شد، حالا باید در مورد دیتاسنتر سرور خود در ایران یا خارج به نتیجه برسید. برای آشنایی با تفاوت سرور مجازی ایران و خارج با ما همراه باشید.
      • آموزش پیکربندی SSH برای استفاده از پورت‌ های مختلف در CentOS 7
        SSH پروتکل ارتباطی شبکه‌ای است که به دو کامپیوتر کمک می‌کند تا با یکدیگر ارتباط برقرار کنند و داده‌ها را به‌اشتراک بگذارند. در این مطلب آموزش پیکربندی SSH برای استفاده از پورت‌های مختلف در CentOS 7 ارائه شده است. با ما همراه باشید.
  • کلیه حقوق برای پارس پک محفوظ می باشد.

    Copyright © 2023 ParsPack Cloud Computing Technology ® , All Rights Reserved.