التشغيل السريع: استخدم Ruby لتوصيل البيانات والاستعلام عنها في قاعدة بيانات Azure Database لـ MySQL

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

هام

قاعدة بيانات Azure لخادم MySQL الفردي على مسار الإيقاف. نوصي بشدة بالترقية إلى قاعدة بيانات Azure لخادم MySQL المرن. لمزيد من المعلومات حول الترحيل إلى خادم Azure Database for MySQL المرن، راجع ما الذي يحدث لقاعدة بيانات Azure لخادم MySQL الفردي؟

يوضح هذا التشغيل السريع كيفية الاتصال بقاعدة بيانات Azure ل MySQL باستخدام تطبيق Ruby والأحجار الكريمة mysql2 من أنظمة Windows وLinux وMac الأساسية. توضح طريقة استخدام عبارات SQL الاستعلام عن البيانات وإدراجها وتحديثها وحذفها في قاعدة البيانات. يفترض هذا الموضوع أنك على دراية بالتطوير باستخدام Ruby وأنك جديد في التعامل مع Azure Database لـ MySQL.

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

يستخدم هذا البدء السريع الموارد التي تم إنشاؤها في أي من هذه الأدلة كنقطة بداية:

هام

تأكد من أن عنوان IP الذي تتصل منه قد تمت إضافته لقواعد جدار الحماية للخادم باستخدام مدخل Microsoft Azure أو Azure CLI

تثبيت Ruby

ثبّت Ruby وGem ومكتبة MySQL2 على جهاز الكمبيوتر الخاص بك.

  1. حمّل وثبّت الإصدار 2.3 من Ruby.
  2. شغّل موجه أوامر جديدًا (cmd) من قائمة "Start".
  3. قم بتغيير الدليل إلى دليل Ruby للإصدار 2.3. cd c:\Ruby23-x64\bin
  4. اختبر تثبيت Ruby عن طريق تشغيل الأمر ruby -v لمعرفة الإصدار المثبت.
  5. اختبر تثبيت Gem عن طريق تشغيل الأمر gem -v لمعرفة الإصدار المثبت.
  6. ابنِ وحدة Mysql2 لـ Ruby باستخدام Gem عن طريق تشغيل الأمر gem install mysql2.

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

احصل على معلومات الاتصال المطلوبة للاتصال بـAzure Database for MySQL. أنت بحاجة إلى اسم الخادم المؤهل بالكامل وبيانات اعتماد تسجيل الدخول.

  1. سجّل الدخول إلى مدخل Azure.
  2. من القائمة اليمنى في مدخل Azure، انقر فوق جميع الموارد،ثم ابحث عن الخادم الذي أنشأته (مثل mydemoserver).
  3. انقر فوق اسم الخادم.
  4. من لوحة نظرة عامة على الخادم، دوّن ملاحظة عن اسم الخادم واسم تسجيل دخول مسؤول الخادم. إذا نسيت كلمة المرور، يمكنك أيضًا إعادة تعيين كلمة المرور من هذه اللوحة.

تشغيل التعليمات البرمجية لـ Ruby

  1. الصق التعليمة البرمجية Ruby من الأقسام أدناه في ملفات نصية، ثم احفظ الملفات في ملف مشروع بامتداد الملف .rb (مثل C:\rubymysql\createtable.rb أو /home/username/rubymysql/createtable.rb).
  2. لتشغيل التعليمات البرمجية، شغّل موجه الأوامر أو Bash shell. غيّر الدليل إلى ملف المشروع الخاص بك cd rubymysql
  3. ثم اكتب الأمر Ruby متبوعًا باسم الملف، مثل ruby createtable.rb لتشغيل التطبيق.
  4. في نظام التشغيل Windows، إذا لم يكن تطبيق Ruby في متغير بيئة المسار الخاص بك، فقد تحتاج إلى استخدام المسار الكامل لتشغيل تطبيق العقدة، مثل "c:\Ruby23-x64\bin\ruby.exe" createtable.rb

توصيل جدول وإنشائه

استخدم التعليمات البرمجية التالية لتوصيل وإنشاء جدول باستخدام عبارة الـ SQL: CREATE TABLE، متبوعة بعبارات الـ SQL: INSERT INTO لإضافة صفوف إلى الجدول.

تستخدم التعليمة البرمجية فئة "mysql2::client" للاتصال بخادم MySQL. ثم تستدعي الأسلوب query() لتشغيل أوامر DROP وCREATE TABLE وINSERT INTO. أخيرًا، استدعِ close() لإغلاق الاتصال قبل الإنهاء.

استبدل السلاسل host وdatabase وusername وpassword بالقيم الخاصة بك.

require 'mysql2'

begin
	# Initialize connection variables.
	host = String('mydemoserver.mysql.database.azure.com')
	database = String('quickstartdb')
    username = String('myadmin@mydemoserver')
	password = String('yourpassword')

	# Initialize connection object.
    client = Mysql2::Client.new(:host => host, :username => username, :database => database, :password => password)
    puts 'Successfully created connection to database.'

    # Drop previous table of same name if one exists
    client.query('DROP TABLE IF EXISTS inventory;')
    puts 'Finished dropping table (if existed).'

    # Drop previous table of same name if one exists.
    client.query('CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);')
    puts 'Finished creating table.'

    # Insert some data into table.
    client.query("INSERT INTO inventory VALUES(1, 'banana', 150)")
    client.query("INSERT INTO inventory VALUES(2, 'orange', 154)")
    client.query("INSERT INTO inventory VALUES(3, 'apple', 100)")
    puts 'Inserted 3 rows of data.'

# Error handling

rescue Exception => e
    puts e.message

# Cleanup

ensure
    client.close if client
    puts 'Done.'
end

اقرأ البيانات

استخدم التعليمات البرمجية التالية للاتصال وقراءة البيانات باستخدام عبارة الـ SQL: SELECT.

تستخدم التعليمة البرمجية فئة "mysql2::client" للاتصال بقاعدة بيانات Azure لـ MySQL باستخدام طريقة new(). ثم تستدعي الأسلوب query() لتشغيل أوامر "SELECT". ثم تستدعي طريقة close()لإغلاق الاتصال قبل الإنهاء.

استبدل السلاسل host وdatabase وusername وpassword بالقيم الخاصة بك.

require 'mysql2'

begin
	# Initialize connection variables.
	host = String('mydemoserver.mysql.database.azure.com')
	database = String('quickstartdb')
    username = String('myadmin@mydemoserver')
	password = String('yourpassword')

	# Initialize connection object.
    client = Mysql2::Client.new(:host => host, :username => username, :database => database, :password => password)
    puts 'Successfully created connection to database.'

    # Read data
    resultSet = client.query('SELECT * from inventory;')
    resultSet.each do |row|
        puts 'Data row = (%s, %s, %s)' % [row['id'], row['name'], row['quantity']]
    end
    puts 'Read ' + resultSet.count.to_s + ' row(s).'

# Error handling

rescue Exception => e
    puts e.message

# Cleanup

ensure
    client.close if client
    puts 'Done.'
end

تحديث البيانات

استخدم التعليمات البرمجية التالية للاتصال وتحديث البيانات باستخدام عبارة UPDATE SQL.

تستخدم التعليمة البرمجية فئة mysql2::client أسلوب .new() للاتصال بقاعدة بيانات Azure لـ MySQL. ثم يستدعي الأسلوب query() لتشغيل أوامر UPDATE. ثم تستدعي طريقة close()لإغلاق الاتصال قبل الإنهاء.

استبدل السلاسل host وdatabase وusername وpassword بالقيم الخاصة بك.

require 'mysql2'

begin
	# Initialize connection variables.
	host = String('mydemoserver.mysql.database.azure.com')
	database = String('quickstartdb')
    username = String('myadmin@mydemoserver')
	password = String('yourpassword')

	# Initialize connection object.
    client = Mysql2::Client.new(:host => host, :username => username, :database => database, :password => password)
    puts 'Successfully created connection to database.'

    # Update data
   client.query('UPDATE inventory SET quantity = %d WHERE name = %s;' % [200, '\'banana\''])
   puts 'Updated 1 row of data.'

# Error handling

rescue Exception => e
    puts e.message

# Cleanup

ensure
    client.close if client
    puts 'Done.'
end

حذف البيانات

استخدم التعليمات البرمجية التالية للاتصال وقراءة البيانات باستخدام عبارة الـ SQL: DELETE.

تستخدم التعليمة البرمجية فئة mysql2::client للاتصال بخادم MySQL، وشغّل الأمر "DELETE" ثم أغلق الاتصال بالخادم.

استبدل السلاسل host وdatabase وusername وpassword بالقيم الخاصة بك.

require 'mysql2'

begin
	# Initialize connection variables.
	host = String('mydemoserver.mysql.database.azure.com')
	database = String('quickstartdb')
    username = String('myadmin@mydemoserver')
	password = String('yourpassword')

	# Initialize connection object.
    client = Mysql2::Client.new(:host => host, :username => username, :database => database, :password => password)
    puts 'Successfully created connection to database.'

    # Delete data
    resultSet = client.query('DELETE FROM inventory WHERE name = %s;' % ['\'orange\''])
    puts 'Deleted 1 row.'

# Error handling


rescue Exception => e
    puts e.message

# Cleanup


ensure
    client.close if client
    puts 'Done.'
end

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

لتنظيف جميع الموارد المستخدمة في أثناء هذا التشغيل السريع حذف مجموعة الموارد باستخدام الأمر التالي:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

الخطوات التالية