التشغيل السريع: إنشاء مثيل لقاعدة بيانات Azure ل MySQL - خادم مرن باستخدام Azure CLI

ينطبق على: قاعدة بيانات Azure لـMySQL - خادم مرن

يوضح لك هذا التشغيل السريع كيفية استخدام أوامر Azure CLI في Azure Cloud Shell لإنشاء مثيل لقاعدة بيانات Azure Database for MySQL - Flexible Server في خمس دقائق.

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ. حاليا، باستخدام حساب Azure المجاني، يمكنك تجربة Azure Database for MySQL - Flexible Server مجانا لمدة 12 شهرا. لمزيد من المعلومات، راجع تجربة Azure Database for MySQL - Flexible Server مجانا.

افتح Azure Cloud Shell

Azure Cloud Shell هو shell مجاني وتفاعلي يمكنك استخدامه لتشغيل الخطوات الموضحة في هذه المقالة. في Cloud Shell، يتم تثبيت أدوات Azure الشائعة مسبقا وتكوينها لاستخدامها مع حسابك.

لفتح Cloud Shell، في الزاوية العلوية اليسرى من مثال التعليمات البرمجية، حدد Try it.

يمكنك أيضًا تشغيل Cloud Shell في علامة تبويب متصفح منفصلة من خلال الانتقال إلى https://shell.azure.com/bash. حدد نسخ لنسخ محتويات كتلة التعليمات البرمجية. في Cloud Shell، الصق التعليمات البرمجية وحدد Enter لتشغيلها.

إذا كنت تفضل تثبيت Azure CLI واستخدامه، يتطلب هذا التشغيل السريع الإصدار 2.0 من Azure CLI أو أحدث. للعثور على إصدار تثبيت Azure CLI. ، قم بتشغيل az --version. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

المتطلبات الأساسية

سجل الدخول إلى حسابك باستخدام الأمر az login. لاحظ الخاصية id . id تشير الخاصية إلى معرف الاشتراك لحساب Azure الخاص بك.

az login

حدد الاشتراك المحدد في حساب Azure الخاص بك باستخدام الأمر az account set . دون قيمة id من az login الإخراج لاستخدامها كقيمة subscription للوسيطة في الأمر .

إذا كان لديك اشتراكات متعددة، فحدد الاشتراك الذي تريد فوترة المورد فيه. للحصول على قائمة باشتراكاتك، استخدم قائمة حسابات az.

az account set --subscription <subscription ID>

إنشاء خادم مرن لـ Azure Database for MySQL

إنشاء مجموعة موارد Azure باستخدام az group create الأمر . ثم قم بإنشاء خادم مرن لقاعدة بيانات Azure ل MySQL داخل مجموعة الموارد. تأكد من توفير اسم فريد. في المثال التالي سيتم إنشاء مجموعة موارد تسمى myresourcegroup في المنطقة eastus2.

az group create --name myresourcegroup --location eastus2

إنشاء خادم مرن لقاعدة بيانات Azure ل MySQL باستخدام az mysql flexible-server create الأمر . قد يحتوي الخادم على قواعد بيانات متعددة. ينشئ الأمر التالي خادما باستخدام الإعدادات الافتراضية للخدمة والقيم من السياق المحلي ل Azure CLI:

az mysql flexible-server create

يحتوي الخادم الذي تم إنشاؤه على السمات التالية:

  • اسم خادم تم إنشاؤه تلقائيا واسم مستخدم المسؤول وكلمة مرور المسؤول واسم مجموعة الموارد (إذا لم يتم تحديده بالفعل في سياق محلي)، وهو في نفس موقع مجموعة الموارد الخاصة بك.
  • الإعدادات الافتراضية للخدمة لتكوينات الخادم المتبقية: طبقة الحوسبة (قابلة للاندفاع)، وحجم الحساب/SKU (B1MS)، وفترة الاحتفاظ بالنسخ الاحتياطي (سبعة أيام)، وإصدار MySQL (5.7).
  • أسلوب الاتصال الافتراضي هو الوصول الخاص (تكامل VNet)، مع شبكة ظاهرية وشبكة فرعية تم إنشاؤها تلقائيا.

إشعار

لا يمكن تغيير أسلوب الاتصال بعد إنشاء الخادم. على سبيل المثال، إذا حددت الوصول الخاص (تكامل VNet) عند إنشاء الخادم، فلا يمكنك تغيير الإعداد إلى الوصول العام (عناوين IP المسموح بها) بعد النشر. نوصي بشدة بإنشاء خادم لديه وصول خاص للوصول إلى الخادم الخاص بك بأمان باستخدام تكامل الشبكة الظاهرية. لمزيد من المعلومات حول الوصول الخاص، راجع المقالة حول مفاهيم الشبكات.

إذا كنت ترغب في تغيير أي إعدادات افتراضية، فراجع الوثائق المرجعية ل Azure CLI للحصول على القائمة الكاملة لمعلمات Azure CLI القابلة للتكوين.

إليك عينة الإخراج:

Creating Resource Group 'groupXXXXXXXXXX'...
Creating new vnet "serverXXXXXXXXXVNET" in resource group "groupXXXXXXXXXX"...
Creating new subnet "serverXXXXXXXXXSubnet" in resource group "groupXXXXXXXXXX" and delegating it to "Microsoft.DBforMySQL/flexibleServers"...
Creating MySQL Server 'serverXXXXXXXXX' in group 'groupXXXXXXXXXX'...
Your server 'serverXXXXXXXXX' is using SKU 'Standard_B1ms' (Paid Tier). For pricing details, see https://aka.ms/mysql-pricing.
Creating MySQL database 'flexibleserverdb'...
Make a note of your password. If you forget your password, reset the password by running 'az mysql flexible-server update -n serverXXXXXXXXX -g groupXXXXXXXXXX -p <new-password>'.
{
  "connectionString": "server=serverXXXXXXXXX.mysql.database.azure.com;database=flexibleserverdb;uid=secureusername;pwd=securepasswordstring",
  "databaseName": "flexibleserverdb",
  "host": "serverXXXXXXXXX.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/groupXXXXXXXXXX/providers/Microsoft.DBforMySQL/flexibleServers/serverXXXXXXXXX",
  "location": "East US 2",
  "password": "securepasswordstring",
  "resourceGroup": "groupXXXXXXXXXX",
  "skuname": "Standard_B1ms",
  "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/groupXXXXXXXXXX/providers/Microsoft.Network/virtualNetworks/serverXXXXXXXXXVNET/subnets/serverXXXXXXXXXSubnet",
  "username": "secureusername",
  "version": "5.7"
}

إذا كنت ترغب في تغيير أي إعدادات افتراضية، فراجع الوثائق المرجعية ل Azure CLI للحصول على القائمة الكاملة لمعلمات Azure CLI القابلة للتكوين.

إنشاء قاعدة بيانات

إذا لم تقم بإنشاء قاعدة بيانات بالفعل، فبادر بإنشاء قاعدة بيانات تسمى newdatabase عن طريق تشغيل الأمر التالي:

az mysql flexible-server db create -d newdatabase

إشعار

الاتصال إلى قاعدة بيانات Azure ل MySQL - يتصل الخادم المرن باستخدام المنفذ 3306. إذا حاولت الاتصال من داخل شبكة شركة، فقد لا يسمح بنسبة استخدام الشبكة الصادرة عبر المنفذ 3306. لا يمكنك الاتصال بالخادم ما لم يفتح قسم تكنولوجيا المعلومات المنفذ 3306.

احصل على معلومات الاتصال

للاتصال بالخادم، تحتاج إلى توفير معلومات المضيف والوصول إلى بيانات الاعتماد:

az mysql flexible-server show --resource-group myresourcegroup --name mydemoserver

كانت النتيجة بتنسيق JSON. دون ملاحظة عن قيم fullyQualifiedDomainName و administratorLogin. فيما يلي مثال على إخراج JSON:

{
  "administratorLogin": "myadminusername",
  "administratorLoginPassword": null,
  "delegatedSubnetArguments": {
    "subnetArmResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/mydemoserverVNET/subnets/mydemoserverSubnet"
  },
  "fullyQualifiedDomainName": "mydemoserver.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMySQL/flexibleServers/mydemoserver",
  "location": "East US 2",
  "name": "mydemoserver",
  "publicNetworkAccess": "Disabled",
  "resourceGroup": "myresourcegroup",
  "sku": {
    "capacity": 0,
    "name": "Standard_B1ms",
    "tier": "Burstable"
  },
  "storageProfile": {
    "backupRetentionDays": 7,
    "fileStorageSkuName": "Premium_LRS",
    "storageAutogrow": "Disabled",
    "storageIops": 0,
    "storageMb": 10240
  },
  "tags": null,
  "type": "Microsoft.DBforMySQL/flexibleServers",
  "version": "5.7"
}

الاتصال الاتصال واختباره باستخدام Azure CLI

يمكنك استخدام Azure Database for MySQL - Flexible Server للاتصال بالخادم المرن باستخدام az mysql flexible-server connect الأمر في Azure CLI. يمكنك استخدام هذا الأمر لاختبار الاتصال بخادم قاعدة البيانات، وإنشاء قاعدة بيانات أساسية سريعة، وتشغيل الاستعلامات مباشرة على الخادم الخاص بك دون تثبيت mysql.exe أو MySQL Workbench. يمكنك أيضا استخدام الأمر في الوضع التفاعلي لتشغيل استعلامات متعددة في كل مرة.

قم بتشغيل البرنامج النصي التالي لاختبار الاتصال بقاعدة البيانات والتحقق من صحته من بيئة التطوير الخاصة بك:

az mysql flexible-server connect -n <servername> -u <username> -p <password> -d <databasename>

إليك مثال:

az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase

في اتصال ناجح، يظهر إخراج مثل المثال التالي:

Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.

إذا فشل الاتصال، فجرب هذه الحلول:

  • تحقق مما إذا كان المنفذ 3306 مفتوحا على جهاز العميل الخاص بك.
  • تحقق من صحة اسم المستخدم وكلمة المرور لمسؤول الخادم.
  • تحقق من تكوين قاعدة جدار حماية لجهاز العميل الخاص بك.
  • تأكد من أن جهاز العميل الخاص بك في نفس الشبكة الظاهرية مثل الخادم إذا قمت بتكوين الخادم الخاص بك للوصول الخاص في شبكة ظاهرية.

لتشغيل استعلام واحد، استخدم الوسيطة--querytext (-q):

az mysql flexible-server connect -n <server-name> -u <username> -p "<password>" -d <database-name> --querytext "<query text>"

إليك مثال:

az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase -q "select * from table1;" --output table

لمعرفة المزيد حول استخدام az mysql flexible-server connect، راجع اتصال واستعلام Azure CLI.

الاتصال باستخدام عميل سطر الأوامر MySQL

إذا قمت بإنشاء خادم مرن لقاعدة بيانات Azure ل MySQL باستخدام الوصول الخاص مع تكامل الشبكة الظاهرية، فاتصل بالخادم الخاص بك من مورد موجود في نفس الشبكة الظاهرية مثل الخادم الخاص بك. يمكنك إنشاء جهاز ظاهري وإضافته إلى الشبكة الظاهرية التي تم إنشاؤها عند إنشاء قاعدة بيانات Azure لمثيل MySQL - Flexible Server. لمعرفة المزيد، راجع تكوين الوصول الخاص.

إذا قمت بإنشاء مثيل Azure Database for MySQL - Flexible Server باستخدام الوصول العام (عناوين IP المسموح بها)، يمكنك إضافة عنوان IP المحلي إلى قائمة قواعد جدار الحماية على الخادم الخاص بك. للحصول على إرشادات مفصلة، راجع إنشاء قواعد جدار الحماية أو إدارتها.

للاتصال بالخادم من بيئتك المحلية، يمكنك استخدام إما mysql.exe أو MySQL Workbench. قاعدة بيانات Azure ل MySQL - يدعم الخادم المرن توصيل تطبيقات العميل بقاعدة بيانات Azure ل MySQL - خدمة الخادم المرن باستخدام أمان طبقة النقل (TLS)، المعروف سابقا باسم طبقة مآخذ التوصيل الآمنة (SSL). TLS هو بروتوكول قياسي في الصناعة يضمن اتصالات الشبكة المشفرة بين خادم قاعدة البيانات وتطبيقات العميل، حتى تتمكن من الالتزام بمتطلبات التوافق. للاتصال باستخدام خادم Azure Database for MySQL المرن، قم بتنزيل شهادة SSL العامة للتحقق من المرجع المصدق. لمعرفة المزيد حول الاتصال باستخدام الاتصالات المشفرة أو تعطيل SSL، راجع الاتصال إلى قاعدة بيانات Azure ل MySQL - الخادم المرن باستخدام الاتصالات المشفرة.

يوضح المثال التالي كيفية الاتصال بقاعدة بيانات Azure لخادم MySQL المرن باستخدام أداة عميل سطر الأوامر MySQL. يمكنك تثبيت الأداة إذا لم تكن مثبتة بالفعل. قم بتنزيل شهادة DigiCertGlobalRootCA المطلوبة لاتصالات SSL. استخدم--ssl-mode=REQUIREDإعداد سلسلة الاتصال لفرض التحقق من شهادة TLS/SSL. قم بتمرير مسار ملف الشهادة المحلية إلى--ssl-caالمعلمة. استبدل القيم باسم الخادم الفعلي وكلمة المرور.

sudo apt-get install mysql-client
wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
mysql -h mydemoserver.mysql.database.azure.com -u mydemouser -p --ssl-mode=REQUIRED --ssl-ca=DigiCertGlobalRootCA.crt.pem

إذا قمت بتوفير خادم Azure Database for MySQL المرن باستخدام الوصول العام، يمكنك أيضا استخدام Azure Cloud Shell للاتصال بقاعدة بيانات Azure لخادم MySQL المرن باستخدام عميل MySQL المثبت مسبقا.

لاستخدام Azure Cloud Shell للاتصال بخادم Azure Database for MySQL المرن، اسمح بالوصول إلى الشبكات من Azure Cloud Shell إلى قاعدة بيانات Azure لخادم MySQL المرن. للسماح بالوصول، انتقل إلى جزء شبكة مدخل Microsoft Azure لقاعدة بيانات Azure لخادم MySQL المرن. ضمن جدار الحماية، حدد خانة الاختيار السماح بالوصول العام من أي خدمة Azure داخل Azure إلى هذا الخادم كما هو موضح في لقطة الشاشة التالية. ثم حدد حفظ للاستمرار في الإعداد.

Screenshot that shows how to grant Azure Cloud Shell access to an Azure Database for MySQL flexible server for public access network configuration.

إشعار

حدد السماح بالوصول العام من أي خدمة Azure داخل Azure إلى هذا الخادم فقط للتطوير أو الاختبار. يقوم هذا الإعداد بتكوين جدار الحماية للسماح بالاتصالات من عناوين IP المخصصة لأي خدمة أو أصل Azure، بما في ذلك الاتصالات من اشتراكات Azure الأخرى.

حدد Try it لفتح Azure Cloud Shell. في Cloud Shell، استخدم الأوامر التالية للاتصال بقاعدة بيانات Azure لخادم MySQL المرن. استخدم اسم الخادم واسم المستخدم وكلمة المرور في الأمر.

wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
mysql -h mydemoserver.mysql.database.azure.com -u mydemouser -p --ssl=true --ssl-ca=DigiCertGlobalRootCA.crt.pem

هام

عند الاتصال بخادم Azure Database for MySQL المرن باستخدام Cloud Shell، استخدم المعلمة --ssl=true . لا تستخدم --ssl-mode=REQUIRED.

السبب الأساسي الذي يجعل هذا التوجيه مهما هو أن Azure Cloud Shell مثبت مسبقا مع عميل mysql.exe من توزيع MariaDB. يتطلب عميل mysql.exe المعلمة --ssl . يتطلب عميل MySQL من توزيع Oracle المعلمة --ssl-mode .

إذا رأيت رسالة الخطأ التالية عند الاتصال بخادم Azure Database for MySQL المرن، إما أنك لم تحدد خانة الاختيار السماح بالوصول العام من أي خدمة Azure داخل Azure إلى هذا الخادم عند إعداد قواعد جدار الحماية، أو لم يتم حفظ الخيار. قم بتعيين قواعد جدار الحماية، ثم حاول مرة أخرى.

ERROR 2002 (HY000): Can't connect to MySQL server on <servername> (115)

تنظيف الموارد

إذا لم تكن بحاجة إلى استخدام الموارد التي قمت بإنشائها لهذه المقالة في تشغيل سريع آخر أو برنامج تعليمي آخر، يمكنك حذفها عن طريق تشغيل الأمر التالي:

az group delete --name myresourcegroup

إذا كنت تريد حذف الخادم المرن الذي قمت بإنشائه فقط، فقم بتشغيل هذا الأمر:

az mysql flexible-server delete --resource-group myresourcegroup --name mydemoserver