بانکهای اطلاعاتی مدیریت شده دارای چندین مزیت نسبت به بانکهای اطلاعاتی خود مدیریتی هستند از جمله به روزرسانی خودکار ، مقیاس بندی ساده و در دسترس بودن بیشتر. اگر تازه کار با بانکهای اطلاعاتی مدیریت شده را شروع کرده اید ، ممکن است بهترین روش برای انجام برخی کارها – مانند اتصال به بانک اطلاعاتی – کاملاً مشهود نباشد.
در این راهنما ، چگونگی نصب برنامه های کلاینت برای انواع سیستم های مدیریت پایگاه داده (DBMS) از جمله PostgreSQL ، MySQL و Redis ، روی سرور Ubuntu 18.04 می پردازیم. همچنین نحوه استفاده از این برنامه ها را برای اتصال به نمونه پایگاه داده مدیریت شده توضیح خواهیم داد.
توجه: دستورالعمل های ذکر شده در این راهنما با پایگاه داده های مدیریت شده vpsgol مورد آزمایش قرار گرفتند ، اما معمولاً برای پایگاه داده های مدیریت شده از هر ارائه دهنده ابری دیگر کار می کنند. با این حال ، اگر مشکلی در ارتباط با بانک اطلاعاتی ارائه شده از ارائه دهنده دیگر دارید ، باید برای کمک به مستندات آنها مراجعه کنید.

پیش نیازها
برای دنبال کردن دستورالعمل های مفصل در این راهنما ، به موارد زیر نیاز دارید:
• دسترسی به سروری که اوبونتو 18.04 را اجرا می کند. این سرور باید دارای یک کاربر غیر ریشه با امتیازات ادمین و فایروال تنظیم شده با ufw باشد. برای انجام این کار ، راهنمای ستاپ اولیه سرور ما برای اوبونتو 18.04 را دنبال کنید.
• یک نمونه پایگاه داده مدیریت شده. این آموزش دستورالعمل نحوه اتصال به انواع سیستم های مدیریت پایگاه داده ، به ویژه PostgreSQL ، MySQL و Redis را ارائه می دهد. برای تهیه یک بانک اطلاعاتی مدیریت شده ، مستندات ما را برای DBMS مورد نظر خود مرور کنید:
⦁ PostgreSQL
⦁ MySQL
⦁ Redis
هنگامی که این موارد انجام شد ، به قسمت های مربوط به DBMS خود بروید.
اتصال به یک بانک اطلاعاتی PostgreSQL مدیریت شده
برای اتصال به یک پایگاه داده مدیریت شده PostgreSQL ، می توانید از psql ، کلاینت استاندارد خط فرمان Postgres استفاده کنید. که منبع آزاد است و توسط گروه توسعه PostgreSQL نگهداری می شود و معمولاً هنگام دانلود سرور PostgreSQL شامل می شود. با این حال ، می توانید pscl را به تنهایی با نصب بسته postgresql-client با APT نصب کنید.
اگر اخیراً این کار را نکرده اید ، فهرست بسته سرور خود را به روز کنید:
$ sudo apt update

سپس دستور زیر را برای نصب psql اجرا کنید:
$ sudo apt install postgresql-client

APT از شما می خواهد تأیید کنید که می خواهید بسته را نصب کنید یا خیر. این کار را با فشار دادن ENTER انجام دهید.
پس از آن ، می توانید بدون نیاز به پیکربندی بیشتر به بانک اطلاعاتی Postgres خود وصل شوید. به عنوان مثال ، ممکن است با پرچم های زیر ، psql را راه اندازی کنید:
⦁ -U ، کاربر PostgreSQL که می خواهید به عنوان آن متصل شوید
⦁ -h ، نام هاست یا آدرس IP پایگاه داده مدیریت شده
⦁ -p ، پورت TCP که بانک اطلاعاتی مدیریت شده در حال گوش دادن به اتصالات است
⦁ -d ، پایگاه داده خاصی که می خواهید به آن متصل شوید
⦁ -v ، مختصر “variable” ، که به متغیرهای اتصال دیگر ارجح است، و پس از آن یک علامت مساوی (=) و مقادیر متغیرها وجود دارد. به عنوان مثال ، اگر می خواهید گواهی CA پایگاه داده را هنگام اتصال اعتبار دهید ، باید -v sslmode = مورد نیاز خود را وارد کنید
⦁ -W ، که به psql می گوید برای شما رمز ورود کاربر PostgreSQL را اعلام کند. توجه داشته باشید که می توانید دستور psql را با PGPASSWORD=password بگذرانید ، اما به طور کلی مخفی نگه داشتن کلمات عبور در خط فرمان ، ایمن تر به نظر می رسد.
با در نظر گرفتن این پرچم ها ، ترکیب دستور psql به شکل زیر است:
$ psql -U user -h host -p port -d database -v variable=value -W

از طرف دیگر ، اگر ارائه دهنده پایگاه داده مدیریت شده، یک شناسه منبع یکنواخت (URI) ارائه دهد ، می توانید از دستور زیر استفاده کنید:
$ psql postgresql://username:password@host:port/database?option_1=value&option_n=value

توجه: اگر به یک پایگاه داده مدیریت شده vpsgol متصل می شوید ، می توانید تمام این اطلاعات اتصال را در کنترل پنل ابری خود پیدا کنید. در منوی نوار کناری سمت چپ روی Databases کلیک کنید ، سپس روی پایگاه داده ای که می خواهید به آن متصل شوید کلیک کنید و به پایین بروید تا بخش جزئیات اتصال آن را پیدا کنید از آنجا یکی از موارد زیر را انجام می دهید:
• گزینه Connection parameters را انتخاب کنید و قسمتهای مربوط را بصورت جداگانه در دستور psql کپی کنید
• گزینه Connection String را انتخاب کنید و یک URI اتصال آماده را کپی کنید که می توانید در دستور اتصال URI که در بالا ذکر شد پیست کنید.
• گزینه Flags را انتخاب کرده و دستور psql آماده استفاده را که می توانید در ترمینال خود پیست کنید ، کپی کنید.
با این کار ، آماده استفاده از مثال PostgreSQL مدیریت شده خود هستید. برای اطلاعات بیشتر در مورد نحوه تعامل با PostgreSQL ، به راهنمای ما در مورد نحوه مدیریت یک بانک اطلاعاتی SQL مراجعه کنید. همچنین ممکن است مقاله مقدمه ای بر جستارها در PostgreSQL مفید باشد.
اتصال به یک بانک اطلاعاتی MySQL مدیریت شده
برای دسترسی به یک پایگاه داده MySQL مدیریت شده ، باید یک سرویس دهنده MySQL را روی دستگاهی نصب کنید که قصد ایجاد اتصال را دارید. اتصال با استفاده از دستور mysql امکان پذیر است ، همانطور که توسط MySQL Command-Line Client ارائه شده است ، اما این دستور از رشته های اتصال پشتیبانی نمی کند. برای انعطاف پذیری بیشتر در مورد نحوه اتصال ، توصیه می کنیم که از دستور mysqlsh استفاده کنید که به شما امکان می دهد از پوسته رسمی MySQL استفاده کنید ، زیرا این امکان را به شما می دهد تا به پرچم ها یا URI ارتباطی متصل شوید.
برای دسترسی به یک پایگاه داده vpsgol Manager MySQL ، باید نسخه 8.0 یا بالاتر از پوسته MySQL را نصب کنید. برای انجام این کار ، باید قبل از نصب بسته mysql-shell ، ابتدا مخزن نرم افزار MySQL را اضافه کنید.
با رفتن به صفحه مخازن APT MySQL در مرورگر وب خود کار را شروع کنید. دکمه دانلود را در گوشه پایین سمت راست پیدا کرده و روی صفحه بعدی کلیک کنید. این صفحه به شما اعلانی نمایش میدهد که وارد شوید یا یک حساب کاربری وب Oracle ایجاد کنید. می توانید این مرحله را رد کنید و در عوض به دنبال پیوندی باشید که می گوید No thanks ، just start my download. روی پیوند راست کلیک کرده و گزینه Copy Link Address را انتخاب کنید (بسته به مرورگر شما ممکن است این گزینه متفاوت باشد).
اکنون آماده دانلود فایل هستید. در سرور خود ، به دایرکتوری بروید که می توانید در آن بنویسید:
$ cd /tmp

فایل را با استفاده از curl دانلود کنید ، به یاد داشته باشید آدرس موردنظر خود را در جای قسمت هایلاین شده از دستور زیر ، پیست کنید. همچنین باید دو پرچم خط فرمان را به curl وارد کنید. –O به curl میگوید به جای خروجی استاندارد به یک فایل خروجی بفرستد. پرچم L باعث می شود که مجدداً HTTP هدایت شود ، که در این حالت ضروری است زیرا آدرسی که کپی کرده اید در واقع قبل از دانلود فایل به مکان دیگری هدایت می شود:
$ curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb

اکنون فایل باید در فهرست اصلی شما دانلود شود. برای اطمینان فایل ها را لیست کنید:
$ ls

نام فایل ذکر شده در خروجی را مشاهده خواهید کرد:
Output
mysql-apt-config_0.8.15-1_all.deb
. . .
اکنون می توانید مخزن MySQL APT را به لیست مخزن سیستم خود اضافه کنید. از دستور dpkg برای نصب ، حذف و بازرسی بسته های نرم افزاری .deb استفاده می شود. دستور زیر شامل پرچم -i است که نشان می دهد شما می خواهید از فایل مشخص شده نصب کنید:
$ sudo dpkg -i mysql-apt-config*

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

پس از آن بسته با اضافه کردن مخزن به پایان می رسد. حافظه نهان بسته apt خود را ریفرش کنید تا بسته های نرم افزاری جدید در دسترس باشد:
$ sudo apt update

در مرحله بعد ، می توانید کمی سیستم خود را پاکسازی کرده و فایلی را که دانلود کرده اید پاک کنید ، زیرا در آینده به آن نیازی نخواهید داشت:
$ rm mysql-apt-config*

توجه: اگر نیاز به پیکربندی تنظیمات این مخازن دارید ، دستور زیر را برای انتخاب گزینه های جدید خود اجرا کنید:
$ sudo dpkg-reconfigure mysql-apt-config

پس از انتخاب گزینه های جدید خود ، دستور زیر را برای ریفرش کردن حافظه نهان بسته خود اجرا کنید:
$ sudo apt update

اکنون که مخازن MySQL را اضافه کردید ، آماده نصب نرم افزار واقعی پوسته MySQL هستید. این کار را با دستور apt زیر انجام دهید:
$ sudo apt install mysql-shell

پس از اتمام آن فرمان ، شماره نسخه نرم افزار را بررسی کنید تا اطمینان حاصل کنید که آخرین نسخه را دارید:
$ mysqlsh –version
Output
mysqlsh Ver 8.0.19 for Linux on x86_64 – for MySQL 8.0.19 (MySQL Community Server (GPL))

بعد از نصب بسته mysql-shell ، می توانید با اجرای دستور mysqlsh با پرچم های زیر به عنوان آرگومان به پایگاه داده مدیریت شده خود دسترسی پیدا کنید:
⦁ -u ، کاربر MySQL که می خواهید به عنوان متصل شوید
⦁ -p ، به mysqlsh می گوید اعلان رمزعبور کاربر را درخواست دهد. می توانید گذرواژه خود را مستقیماً در فرمان اتصال به دنبال پرچم -p (بدون فاصله ، به صورت -ppassword) قرار دهید ، اما به دلایل امنیتی ، این کار به طور کلی توصیه نمی شود.
⦁ -h ، نام هاست یا آدرس IP پایگاه داده
⦁ -P ، پورت TCP که MySQL در حال گوش دادن به اتصالات آن است
⦁ -D ، پایگاه داده خاصی که می خواهید به آن متصل شوید
علاوه بر این ، ممکن است بخواهید گزینه –sql را نیز درج کنید. وقتی پوسته MySQL بخش جدیدی را باز می کند ، این کار را در یکی از سه حالت انجام می دهد: SQL، JavaScript یا Python. حالت SQL بخشی را باز می کند که در آن می توانید از SQL برای جستجوی و دستکاری داده ها و همچنین ایجاد پایگاه های داده ، جداول ، گروه ها یا هر چیز دیگری که برای ذخیره و مدیریت داده های خود نیاز دارید ، ایجاد کنید. حالت های JavaScript و Python به شما امکان می دهد از توابع موجود در آن زبان های مربوطه برای ایجاد آبجکت های بخش شماره استفاده کنید. این به شما امکان می دهد چندین نمونه سرور MySQL را از همان نمونه پوسته MySQL استفاده کنید.
پوسته MySQL بطور پیش فرض بخش ها را در حالت JavaScript باز می کند. بنابراین ، اگر می خواهید نمایش داده های SQL را همانطور که معمولاً با کلاینت خط فرمان MySQL انجام می دهد ، اجرا کنید ، برای ایجاد ارتباط در حالت SQL باید گزینه –sql را مشخص کنید.
با استفاده از این پرچم ها ، دستور mysqlsh به صورت زیر ظاهر می شود:
$ mysqlsh -u user -p -h host -P port -D database –sql

از طرف دیگر ، اگر دارای یک URI اتصال هستید که می توانید از آن برای اتصال استفاده کنید ، از یک دستور مانند این استفاده می کنید:
$ mysqlsh –sql mysql://user:password@host:port/database?option_1=value&option_n=value

توجه: اگر به یک پایگاه داده مدیریت شده vpsgol متصل می شوید ، می توانید تمام این اطلاعات اتصال را در کنترل پنل ابری خود پیدا کنید. در منوی نوار کناری سمت چپ روی Databases کلیک کنید ، سپس روی پایگاه داده ای که می خواهید به آن متصل شوید کلیک کنید و به پایین بروید تا بخش جزئیات اتصال آن را پیدا کنید از آنجا یکی از موارد زیر را انجام می دهید:
• گزینه Connection parameters را انتخاب کنید و قسمتهای مربوط را بصورت جداگانه در دستور mysqlsh کپی کنید
• گزینه Connection String را انتخاب کنید و یک URI اتصال آماده را کپی کنید که می توانید در دستور اتصال URI که در بالا ذکر شد پیست کنید.
با این کار ، آماده استفاده از مثال MySQL مدیریت شده خود هستید.
اگه به تازگی کار با پوسته MySQL را شروع کرده اید، چیزی که باید دقت کنید این است که برای بستن اتصال، دستور exit مورد استفاده ار کلاینت های دیگر کار نمیکند. باید از میانبر \q استفاده کنید:
SQL> \q
Output
Bye!

برای اطلاعات بیشتر در مورد نحوه تعامل با MySQL ، به راهنمای ما در مورد نحوه مدیریت یک بانک اطلاعاتی SQL مراجعه کنید. همچنین ممکن است مقاله مقدمه ای بر جستارها در MySQL مفید باشد.
یادداشت مربوط به احراز هویت رمز عبور در MySQL 8
در MySQL 8.0 و نسخه های جدیدتر ، افزونه تأیید اعتبار پیش فرض، caching_sha2_password است. با این وجود ، PHP از caching_sha2_password پشتیبانی نمی کند. اگر قصد استفاده از بانک اطلاعاتی MySQL خود با برنامه ای مانند WordPress یا phpMyAdmin دارید که از PHP استفاده می کند ، ممکن است این مسئله هنگام تلاش برنامه برای اتصال به پایگاه داده به مشکلاتی منجر شود.
اگر به فایل پیکربندی پایگاه داده دسترسی دارید ، می توانید به صورت پیش فرض تنظیماتی را برای استفاده از یک افزونه احراز هویت پشتیبانی شده از PHP – به عنوان مثال ، mysql_native_password – اضافه کنید:
Example MySQL Configuration File
[mysqld]
default-authentication-plugin=mysql_native_password

با این حال ، برخی از ارائه دهندگان پایگاه داده مدیریت شده – فایل پیکربندی پایگاه داده را برای کاربران نهایی در دسترس قرار نمی دهند. در این حالت ، می توانید به بانک اطلاعاتی متصل شوید و یک دستور ALTER USER برای هر کاربر MySQL موجود که باید به بانک اطلاعاتی وصل شود را اجرا کنید ، اما نمی توانید با افزونه caching_sha2_password این کار را انجام دهید:
SQL> ALTER USER user IDENTIFIED WITH mysql_native_password BY ‘password’;

البته ، می توانید با وارد کردن افزونه در عبارت CREATE USER مربوطه ، کاربران جدید را برای تأیید اعتبار mysql_native_password تنظیم کنید:
SQL> USER user IDENTIFIED WITH mysql_native_password BY ‘password’;

اگر از بانک اطلاعاتی مدیریت شده vpsgol استفاده می کنید ، توجه داشته باشید که اگر کاربر را پیکربندی کنید تا با افزونه دیگری غیر از caching_sha2_password تأیید اعتبار کند ، دیگر نمی توانید رمز ورود کاربر را در کنترل پنل ابری خود مشاهده کنید. به همین دلیل ، باید اطمینان داشته باشید که کلمه عبورهای مربوط به کاربرانی را که با mysql_native_password یا سایر افزونه های دیگر در یک مکان امن تأیید می کنند ، یادداشت کنید.
اتصال به یک پایگاه داده Redis مدیریت شده
وقتی Redis را به صورت محلی نصب می کنید ، با redis-cli ، رابط خط فرمان Redis همراه است. شما می توانید از redis-cli برای اتصال به یک نمونه از راه دور Redis مدیریت شده استفاده کنید ، اما بطور طبیعی از اتصالات TLS / SSL پشتیبانی نمی کند. روش هایی وجود دارد که می توانید redis-cli را برای اتصال ایمن به یک نمونه Redis مدیریت شده (به عنوان مثال ، با پیکربندی یک تونل TLS) پیکربندی کنید ، اما کلاینت های جایگزین Redis نیز وجود دارند که دارای پشتیبانی TLS هستند.
برای دیتابیس مدیریت شده Redis در vpsgol ، توصیه می کنیم Redli ، یک ترمینال منبع باز و تعاملی Redis را نصب کنید. برای انجام این کار ، به صفحه نسخه ها در پروژه Redli GitHub بروید و جدول Assets برای آخرین نسخه را پیدا کنید. در زمان این مقاله ، این نسخه 0.4.4 میباشد.
در آنجا ، پیوند مربوط به فایلی که به linux_amd64.tar.gz ختم میشود را پیدا کنید. این پیوند به فایل بایگانی معروف به tarball اشاره دارد که در صورت استخراج ، چند فایل در سیستم شما ایجاد می کند. روی این پیوند راست کلیک کرده و Copy link address را انتخاب کنید (این گزینه بسته به مرورگر وب شما ممکن است متفاوت باشد).
در سرور خود ، به دایرکتوری بروید که می توانید در آن بنویسید:
$ cd /tmp

سپس پیوند را در دستور wget زیر پیست کنید و URL هایلایت شده را جایگزین کنید. این دستور فایل را در سرور شما دانلود می کند:
$ wget https://github.com/IBM-Cloud/redli/releases/download/v0.4.4/redli_0.4.4_linux_amd64.tar.gz

پس از دانلود فایل در سرور خود ، تاربال را اکسترکت کنید:
$ tar xvf redli_0.4.4_linux_amd64.tar.gz

فایل های زیر را در سرور شما ایجاد می کند:
Output
LICENSE.txt
README.md
redli

فایل redli فایل باینری Redli است. آن را به دیرکتوری / usr / local / bin انتقال دهید ، محلی که اوبونتو به دنبال فایلهای قابل اجرا است:
sudo mv redli /usr/local/bin/

در این مرحله می توانید سیستم خود را کمی پاکسازی کرده کرده و تاربال را حذف کنید:
$ rm redli_0.4.4_linux_amd64.tar.gz

اکنون می توانید از Redli برای اتصال به نمونه Redis مدیریت شده خود استفاده کنید. می توانید این کار را با اجرای دستور redli به همراه این پرچم ها انجام دهید:
⦁ -h ، هاستی که به آن متصل میشوید. می تواند یک نام هاست یا یک آدرس IP باشد
⦁ -a ، رمز عبوری است که برای تأیید اعتبار به نمونه Redis استفاده می شود
⦁ -p ، پورت اتصال
با در نظر گرفتن این پرچم ها ، دستور redli به شرح زیر خواهد بود. توجه داشته باشید که این مثال شامل گزینه –tls نیز می باشد که به شما امکان می دهد بدون نیاز به یک تونل به یک بانک اطلاعاتی Redis مدیریت شده از طریق TLS / SSL متصل شوید:
$ redli –tls -h host -a password -p port

یکی از مزایایی که Redli نسبت به redis-cli دارد این است که پروتکل rediss را می فهمد ، که برای تعیین URI با اشاره به پایگاه داده Redis استفاده می شود. این ویژگی به شما امکان می دهد برای دسترسی به پایگاه داده خود از یک رشته اتصال استفاده کنید:
$ redli –tls -u rediss://user:password@host:port

توجه: اگر به یک پایگاه داده مدیریت شده vpsgol متصل می شوید ، می توانید تمام این اطلاعات اتصال را در کنترل پنل ابری خود پیدا کنید. در منوی نوار کناری سمت چپ روی Databases کلیک کنید ، سپس روی پایگاه داده ای که می خواهید به آن متصل شوید کلیک کنید و به پایین بروید تا بخش جزئیات اتصال آن را پیدا کنید از آنجا یکی از موارد زیر را انجام می دهید:
• گزینه Connection parameters را انتخاب کنید و قسمتهای مربوط را بصورت جداگانه در دستور redliکپی کنید
• گزینه Connection String را انتخاب کنید و یک URI اتصال آماده را کپی کنید که می توانید در دستور اتصال URI که در بالا ذکر شد پیست کنید.
• گزینه Flags را انتخاب کرده و دستور redli آماده استفاده را که می توانید در ترمینال خود پیست کنید ، کپی کنید.
با این کار ، آماده استفاده از مثال Redis مدیریت شده خود هستید. برای اطلاعات بیشتر در مورد نحوه تعامل با Redis ، به راهنمای ما در مورد نحوه مدیریت یک بانک اطلاعاتی Redis مراجعه کنید.
نتیجه
به عنوان یک پیشرفت نسبتاً جدید در سرویس های ابری ، بسیاری از شیوه هایی که برای پایگاه داده های خود مدیریتی مشهورند، برای بانکهای اطلاعاتی که توسط ارائه دهندگان ابری مدیریت می شوند ، مستند و گسترده نیستند. یکی از بنیادی ترین این شیوه ها ، یعنی دسترسی به بانک اطلاعاتی ، ممکن است برای افرادی که به تازگی با بانکهای اطلاعاتی مدیریت شده کار میکنند، شفاف نباشد. هدف ما از این آموزش این است که به شما در شروع کار با بانک اطلاعاتی مدیریت شده برای ذخیره داده ها کمک کنیم.
برای کسب اطلاعات بیشتر در مورد کار با بانکهای اطلاعاتی ، توصیه می کنیم انواع محتوای مرتبط با بانک اطلاعاتی ما را بررسی کنید ، از جمله آموزش هایی که مستقیماً روی PostgreSQL ، MySQL و Redis متمرکز شده اند.

برچسب‌ها:, ,