منو سایت

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

 تاریخ انتشار :
/
  وبلاگ
آموزش ارائه دسترسی از راه دور به MySQL

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

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

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

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

از راه دور به mysql متصل شوید

راهنمای گام به گام دسترسی به پایگاه داده 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 محلی 127.0.0.1 تنظیم شده است. این بدان معناست که سرور فقط اتصالات محلی را می پذیرد. شما باید این آدرس 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 دارید که می‌خواهید از آن برای اتصال به پایگاه داده میزبان راه دور خود استفاده کنید، باید آن حساب را برای اتصال به سرور راه دور به جای سرور محلی پیکربندی کنید. برای انجام این کار، مشتری MySQL را با یک حساب MySQL ریشه یا یک حساب کاربری با امتیازات کامل باز کنید:

sudo mysql

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

mysql -u root -p

برای تغییر هاست کاربر، می توانید از دستور RENAME USER در MySQL استفاده کنید. دستور زیر را اجرا کنید و مطمئن شوید که نام اکانت MySQL خود را به جای sammy و آدرس IP سرور راه دور خود را به جای remote_server_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 را در پایگاه‌های داده، جداول و کاربران می‌دهد و همچنین امکان درج، به‌روزرسانی و حذف داده‌ها را از هر جدول روی سرور می‌دهد. همچنین به کاربر این امکان را می دهد که داده ها را با پرس و جوی 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

در نهایت، با فرض اینکه یک فایروال را روی سرور پایگاه داده خود پیکربندی کرده اید، باید پورت 3306، پورت پیش فرض 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 روی 0.0.0.0 ناامن است. زیرا به شما امکان می دهد از هر آدرس IP به سرور خود متصل شوید. همچنین، اگر هنوز نمی توانید به MySQL دسترسی پیدا کنید، ممکن است مشکل در جای دیگری باشد.

آموزش پیکربندی MySQL برای اتصال از راه دور

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

نتیجه

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

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

مقایسه همانندسازی ناهمزمان و همانندسازی همزمان

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

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

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

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

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

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

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

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

4. آیا MySQL Server رایگان است؟

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

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

به طور پیش فرض، هر سرور MySQL به آدرس IP محلی 127.0.0.1 گوش می دهد و هر سرور MariaDB همه اتصالات را می پذیرد (یعنی به 0.0.0.0 گوش می دهد).

{ “@context”: “https://schema.org”، “@type”: “FAQPage”، “mainEntity”: [{
“@type”: “Question”,
“name”: “چگونه از راه دور به MySQL متصل شویم؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “برای این کار مراحل زیر را دنبال کنید:

در سرور پایگاه داده خود، به‌عنوان کاربری با امتیازهای روت فایل پیکربندی MySQL خود را باز کنید.
در فایل پیکربندی bind-address را جست‌وجو کنید.
آدرس IP خود را وارد کنید و خارج شوید.
سرویس MySQL را مجدداً راه‌اندازی کنید.”
}
},{
“@type”: “Question”,
“name”: “چگونه می‌توانیم از راه دور به پایگاه داده خود دسترسی داشته باشیم؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “برای افزودن کامپیوتر خود به‌عنوان میزبان دسترسی، وارد cPanel شوید. در قسمت Databases، روی نماد Remote MySQL® کلیک کنید. در صفحه Remote MySQL®، آدرس IP اتصال را وارد و سپس روی Add Host کلیک کنید.”
}
},{
“@type”: “Question”,
“name”: “چگونه از راه دور به میزکار MySQL دسترسی داشته باشیم؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “MySQL Workbench را باز کنید. روی New Connection در سمت چپ پایین MySQL Workbench کلیک و سپس اطلاعات را برای اتصال وارد کنید.”
}
},{
“@type”: “Question”,
“name”: “آیا سرور MySQL رایگان است؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “MySQL نرم‌افزاری رایگان و منبع‌باز تحت شرایط GNU محسوب می‌شود و برای انواع مجوزهای اختصاصی موجود است.”
}
},{
“@type”: “Question”,
“name”: “آدرس IP سرور MySQL چیست؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “به‌طور‌پیش‌فرض هر سرور MySQL به آدرس IP محلی ۱۲۷.۰.۰.۱ گوش می‌دهد و هر سرور MariaDB همه اتصالات را می‌پذیرد (یعنی ۰.۰. ۰.۰ گوش می‌دهد).”
}
}]
}

متن آموزش ارائه دسترسی از راه دور به MySQL برای اولین بار در پارسپک. به نظر می رسد.