بانكهاي اطلاعاتي مديريت شده داراي چندين مزيت نسبت به بانكهاي اطلاعاتي خود مديريتي هستند از جمله به روزرساني خودكار ، مقياس بندي ساده و در دسترس بودن بيشتر. اگر تازه كار با بانكهاي اطلاعاتي مديريت شده را شروع كرده ايد ، ممكن است بهترين روش براي انجام برخي كارها – مانند اتصال به بانك اطلاعاتي – كاملاً مشهود نباشد.
در اين راهنما ، چگونگي نصب برنامه هاي كلاينت براي انواع سيستم هاي مديريت پايگاه داده (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 متمركز شده اند.