چگونه به اتصالات از راه دور به MySQL اجازه دهیم

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

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

فهرست مطالب

    قبل از شما شروع

    قبل از ایجاد هرگونه تغییر در پایگاه داده MySQL ، مهم است که از پایگاه داده خود پشتیبان گیری کنید، به ویژه اگر در یک سرور تولید (سرور) کار می کنید. در حال استفاده فعال) هرگونه تغییری که در پایگاه داده خود یا سروری که میزبانی آن را انجام می دهد ، ممکن است در صورت بروز مشکل منجر به از دست دادن داده های جدی شود.

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

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

    فرض کنید از راه دور از طریق SSH به سرور خود دسترسی ندارید (برای مثال). در این صورت ، شما نمی توانید پایگاه داده MySQL خود را طوری پیکربندی کنید که مستقیماً به اتصالات از راه دور اجازه دهد مگر اینکه حساب root mySQL شما قبلاً به اتصالات از راه دور اجازه دهد. بنابراین ، ابتدا باید این اتصال را برقرار کنید تا بتوانید ادامه دهید.

    ویرایش فایل پیکربندی MySQL

    اولین مرحله در پیکربندی MySQL برای اجازه از راه دور اتصالات برای ویرایش فایل پیکربندی MySQL است. در این مرحله ، این راهنما فرض می کند که قبلاً به سرور ، رایانه شخصی یا Mac متصل شده اید که پایگاه داده mySQL خود را از راه دور میزبانی می کند و دسترسی به کنسول دارید.

    متناوباً ، می توانید یک سرور MySQL محلی را با استفاده از ترمینال باز در Mac یا Linux یا ویرایشگر متن در Windows پیکربندی کنید.

    1. برای شروع ، از ویرایشگر متن کنسول دلخواه خود استفاده کنید برای ویرایش فایل پایگاه داده MySQL در لینوکس ، sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfرا در ترمینال یا پنجره SSH تایپ کنید تا این فایل با استفاده از ویرایشگر nanoویرایش شود (با فرض پایگاه داده MySQL شما در محل پیش فرض قرار دارد) .
      1. اگر از Windows استفاده می کنید ، File Explorer را باز کرده و به پوشه حاوی نصب MySQL خود دسترسی پیدا کنید (مثلاً C:/Program Files/MySQL/MySQL Server 8.0). با دوبار کلیک روی ورودی ، فایل my.iniرا با استفاده از ویرایشگر متن پیش فرض (مثلاً دفترچه یادداشت) باز کنید. اگر آنجا نیست ، ابتدا فایل را ایجاد کنید.
        1. در Mac ، پنجره ترمینال را باز کنید و sudo nano /usr/local/etc/my.cnfرا تایپ کنید. اگر MySQL با استفاده از homebrew را نصب کرده اید ، این فایل پیکربندی پیش فرض است .
        2. مکانهایی که در بالا به آنها اشاره شد مکانهای پیش فرض هستند برای فایل های پیکربندی MySQL اگر این دستورات کار نمی کنند ، باید فایل های مربوطه را جستجو کنید (my.cnf، mysqld.cnf، یا my.ini) به صورت دستی مسیر فایل مربوطه را بیابید.

          تنظیم محدوده IP آدرس ایمن

          1. هنگامی که فایل پیکربندی MySQL را برای سرور خود باز کرده اید ، از کلید پیکان صفحه کلید خود برای رسیدن به بخش bind-addressفایل استفاده کنید. این محدوده IP اتصالات به پایگاه داده شما را محدود می کند ، که معمولاً طوری تنظیم شده است که فقط بتواند از طریق دستگاه 127.0.0.1وصل شود. s>
            1. اگر می خواهید پایگاه داده MySQL خود را طوری پیکربندی کنید که به اتصالات دستگاه های با استفاده از اتصال اینترنت فعلی شما اجازه داده شود ، ابتدا آدرس IP عمومی خود را پیدا کنید ، سپس 127.0.0.1 را جایگزین کنید.با آن آدرس IP. روش دیگر ، آن را با یک آدرس IP برای دستگاه یا سروری که می خواهید از آنها امکان اتصال داشته باشد جایگزین کنید.
              1. در برخی شرایط ، ممکن است مایل باشید همهاتصالات از راه دور را به پایگاه داده MySQL مجاز کنید. این دارای خطر فوق العادهاست و نباید در سرور تولیدی استفاده شود. اگر می خواهید این اجازه را بدهید ، 127.0.0.1را با 0.0.0.0جایگزین کنید .
                1. مقدار پورترا در قسمت تنظیمات اساسییادداشت کنید. این مورد در بخش بعدی مورد نیاز است. اگر قابل مشاهده نیست ، از مقدار پیش فرض استفاده می شود که پورت 3306است. می توانید با تایپ کردن port = xxxxدر یک خط جدید و جایگزینی xxxxبا مقدار پورت مناسب ، پورت خود را اضافه کنید.
                  1. پس از پیکربندی bind-addressدر فایل پیکربندی MySQL ، فایل را ذخیره کنید. اگر از لینوکس استفاده می کنید ، Ctrl + Oو Ctrl + Xرا برای این کار انتخاب کنید. در Mac ، Command + Oو Command + Xرا انتخاب کنید. کاربران Windows می توانند با انتخاب فایل>ذخیره.
                    1. بعد ، کاربران لینوکس و مک می توانند MySQL را با تایپ mysql.server stop && mysql.server startیا restart mysql.serراه اندازی مجدد کنند. ممکن است لازم باشد فرمان با استفاده از sudo را بالا ببرید (مثلاً sudo mysql.server restart) و از مسیر مناسب به فایل mysql.server استفاده کنید (مثلاً /usr /local/bin/mysql.server).
                    1. اگر دستور بالا کار نکرد ، sudo service mysql restartinstead.
                      1. برای راه اندازی مجدد MySQL در Windows ، با کلیک راست روی منوی Start و انتخاب Windows PowerShell (Admin)در پنجره PowerShell ، net stop mysql80و به دنبال آن net start mysql80، نام سرویس صحیح را در رایانه خود جایگزین mysql80کنید.
                      2. اگر از نام سرویس صحیح در Windows مطمئن نیستید ، net startرا برای یافتن آن تایپ کنید. اگر نمی توانید پیکربندی خود را بارگیری کنید ، سرور خود را مجدداً راه اندازی کنید و به جای آن MySQL را به صورت دستی بارگیری کنید.

                        پیکربندی فایروال

                        در این مرحله ، پایگاه داده MySQL شما باید به اتصالات از راه دور دستگاه هایی با استفاده از آدرس IP ای که به عنوان مقدار bind-addressدر فایل پیکربندی MySQL خود تعیین کرده اید (یا اگر این مقدار را روی 0.0.0.0 تنظیم کنید از همه دستگاه ها اجازه می دهد)بجای آن). با این حال ، اتصالات همچنان توسط دستگاه یا دیوار آتش شبکهشما مسدود می شوند.

                        اکثر سرورها و رایانه های شخصی از فایروال برای مسدود کردن اتصالات استفاده می کنند مگر اینکه دسترسی به پورت خاصی داده شود. مراحل پیکربندی این بسته به اینکه از MySQL در Windows یا Linux استفاده می کنید متفاوت خواهد بود. فایروال های Mac به طور پیش فرض غیرفعال هستند ، بنابراین نیازی به انجام مراحل اضافی در اینجا ندارید.

                        پیکربندی فایروال های Linux

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

                        1. یک اتصال ترمینال یا SSH باز کنید و sudo iptables -A INPUT -p tcp -s XXXX –port YYYY -j ACCEPT. XXXXرا با آدرس IP دستگاهی که می خواهید به اتصالات MySQL از اجازه دهد ، جایگزین کنید ، و YYYYرا با مقدار پورت منطبق از پیکربندی MySQL خود جایگزین کنید. فایل (به عنوان مثال. 3306).
                          1. این به طور موقت فایروال را پیکربندی می کند. اگر از سرور لینوکس مبتنی بر دبیان یا اوبونتو استفاده می کنید ، با تایپ sudo netfilter-persistent saveو sudo netfilter-persistent بارگذاری مجدددر ترمینال یا SSH این تغییر را دائمی کنید. window.
                          2. اگر iptables ابزار پیش فرض فایروال برای توزیع لینوکس شما نیست ، برای اطلاعات بیشتر باید با دفترچه راهنمای کاربر توزیع خود مشورت کنید. اگر بسته های خاصی (مانند netfilter-persistent) در دسترس نیستند ، از ابزار مخزن نرم افزار توزیع خود برای نصب آن استفاده کنید (مثلاً sudo apt install netfilter-persistent).

                            پیکربندی فایروال های Windows

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

                            1. روی منوی Start راست کلیک کرده و اجرا
                            2. را انتخاب کنید
                              1. در کادر اجرا، wf.mscرا تایپ کرده و تأیید.
                                1. در پنجره Windows Defender، قوانین ورودی <را انتخاب کنید >قانون جدید.
                                  1. در جادوگر قوانین جدید ورودیپنجره ، بندر>بعدیرا انتخاب کنید .
                                    1. در منوی بعدی ، TCPرا از بین گزینه ها انتخاب کنید ، 3306(یا هر مقدار پورت در فایل پیکربندی MySQL شما ذکر شده است) ، سپس بعدی <را انتخاب کنید /.
                                      1. در منوی Action، گزینه پیش فرض را به اجازه دهید اتصالفعال باشد ، سپس بعدیرا انتخاب کنید .
                                        1. تأیید کنید می خواهید این قانون برای همه انواع شبکه اعمال شود ، سپس بعدیرا انتخاب کنید.
                                          1. یک نام توصیفی برای قاعده (مثلاً MySQL) در پورت ارائه شده وارد کنید ، سپس پایانرا انتخاب کنید تا به لیست قوانین دیوار آتش خود اضافه شود.
                                          2. اگر در اتصال مشکل دارید ، این مراحل بالا را تکرار کنید ، اطمینان حاصل کنید که یک قانون خروجیجدید در تنظیمات فایروال خود با استفاده از همان جزئیات (پورت 3306 و غیره) ایجاد کنید. همچنین ممکن است لازم باشد روتر شبکه محلی خود را به پورت های مسدود شده لازم را باز کنید پیکربندی کنید تا بتوانید اتصالات ورودی و خروجی به پایگاه داده خود را مجاز کنید.

                                            اتصال به سرور از راه دور با استفاده از MySQL

                                            پس از پیکربندی پایگاه داده MySQL خود برای امکان اتصال از راه دور ، باید در واقع یک اتصال به آن برقرار کنید. می توانید این کار را با استفاده از فرمان mysql(mysql.exeدر Windows) از ترمینال یا پنجره PowerShell انجام دهید.

                                            اگر از Windows استفاده می کنید ، قبل از شروع باید از MySQL به صورت محلی نصب شده است اطمینان حاصل کنید. کاربران Mac می توانند MySQL با استفاده از homebrew را از پایانه (brew install mysql) نصب کنند ، در حالی که کاربران لینوکس می توانند از مخزن برنامه محلی خود استفاده کنند (به عنوان مثال sudo apt install mysql) برای نصب بسته های لازم.

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

                                            1. اتصال به سرور MySQL از راه دور خود در Mac یا لینوکس ، یک پنجره ترمینال جدید باز کنید و mysql -u username -h XXXX: XXXX -pرا تایپ کنید. IPX سرور از راه دور و شماره پورت (مثلاً 100.200.100.200:3306) و نام کاربریرا با نام کاربری MySQL خود XXXX: XXXXجایگزین کنید.
                                              1. در صورت درخواست ، گذرواژه خود را تأیید کنید. در صورت موفقیت آمیز بودن اتصال ، پیام موفقیت در ترمینال ظاهر می شود.
                                              2. اتصال به MySQL در Windows

                                                1. برای اتصال در یک سرور MySQL از راه دور در ویندوز ، با کلیک راست روی منوی Start و انتخاب Windows PowerShell (Admin)
                                                2. 37
                                                  1. در پنجره جدید PowerShell ، cd “C: \ Program Files \ MySQL \ MySQL Workbench 8.0 \” را وارد کنید تا پوشه صحیح را وارد کرده و این فهرست را جایگزین کنید. با دایرکتوری نصب صحیح بر روی کامپیوتر شما به عنوان مثال ، اگر نسخه MySQL شما 8.0.1 است ، به جای آن از پوشه MySQL Workbench 8.0.1استفاده کنید.
                                                    1. از آنجا . \ mysql.exe -u username -h X.X.X.X: XXXX -pرا تایپ کنید. IPX سرور از راه دور و شماره پورت (مثلاً 100.200.100.200:3306) و نام کاربریرا با نام کاربری MySQL جایگزین XXXX: XXXXکنید. اجازه دسترسی از راه دور (مانند ریشه) را می دهد. هرگونه دستورالعمل اضافی روی صفحه را دنبال کنید.
                                                    2. در صورت درخواست ، گذرواژه خود را وارد کنید تا مراحل ورود به سیستم را تکمیل کرده و از راه دور به پایگاه داده MySQL دسترسی پیدا کنید.
                                                    3. اگر این کار نمی کند ، با استفاده از این مراحل و با استفاده از استدلال -h localhostبه سرور یا رایانه ای که سرور MySQL خود را میزبانی می کند با SSH (یا مستقیماً به آن دسترسی داشته باشید) متصل شوید. سپس می توانید با دنبال کردن مراحل زیر یک حساب کاربری مناسب ایجاد کنید.

                                                      اجازه دسترسی کاربر از راه دور به پایگاه داده MySQL

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

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

                                                      شما باید توانایی ورود به سرور MySQL خود از راه دور را داشته باشید. اگر نمی توانید از راه دور از حساب ریشه خود استفاده کنید ، باید با استفاده از فرمان mysqlاز طریق اتصال SSH از راه دور یا دسترسی مستقیم به رایانه شخصی یا سرور میزبان سرور ، به پوسته سرور خود دسترسی پیدا کنید.

                                                      1. در پوسته MySQL از راه دور (با استفاده از ابزار mysql) ، CREATE USER "username"@"xxxx" Identified by "password" را تایپ کنید.و Enterرا انتخاب کنید. نام کاربریرا با نام کاربری که می خواهید ایجاد کنید ، xxxxبا آدرس IP ای که می خواهید از آن متصل شوید ، و رمز عبوررا با گذرواژه مناسب جایگزین کنید.
                                                        1. باید به حساب جدید خود مجوزهای لازم را بدهید. برای انجام این کار ، GRANT ALL ON databasename را تایپ کنید.* TO username@”x.x.x.x”؛و نام پایگاه داده ، نام کاربریو x.x.x.xرا با جزئیات صحیح جایگزین کنید. در صورت تمایل ، نام پایگاه دادهرا با *جایگزین کنید تا به همه پایگاه های داده دسترسی داشته باشد.
                                                        2. با دسترسی مجاز ، از مراحل موجود در قسمت بالا برای اتصال از راه دور به سرور خود با استفاده از حساب جدید خود استفاده کنید (مثلاً mysql -u نام کاربری -h XXXX: XXXX -p).

                                                          امنیت داده های پایگاه داده

                                                          این که آیا با MySQL یا نوع دیگری از SQL کار می کنید پایگاه داده ، حفظ امنیت اتصالات برای حفظ امنیت داده ها بسیار مهم است. یک راه خوب برای انجام این کار این است که به جای اتکا به گذرواژه های قدیمی (و به راحتی قابل حدس زدن) به سرور خود ایجاد کلیدهای SSH برای دسترسی از راه دور وارد شوید.

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

                                                          پست های مرتبط:


                                                          9.08.2021