Aracılığıyla paylaş


Hızlı Başlangıç: MySQL için Azure Veritabanı'de verilere bağlanmak ve verileri sorgulamak için Ruby kullanma

ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu

Önemli

MySQL için Azure Veritabanı tek sunucu kullanımdan kaldırma yolundadır. Esnek MySQL için Azure Veritabanı sunucuya yükseltmenizi kesinlikle öneririz. MySQL için Azure Veritabanı esnek sunucuya geçiş hakkında daha fazla bilgi için bkz. MySQL için Azure Veritabanı Tek Sunucu'ya neler oluyor?

Bu hızlı başlangıçta, Bir Ruby uygulaması ve Windows, Linux ve Mac platformlarından mysql2 gem kullanarak bir MySQL için Azure Veritabanı nasıl bağlandığınız gösterilmektedir. Hızlı başlangıçta, veritabanında verileri sorgulamak, eklemek, güncelleştirmek ve silmek için SQL deyimlerinin nasıl kullanılacağı da gösterilmiştir. Bu konuda, Ruby kullanarak geliştirmeyle ilgili bilgi sahibi olduğunuz ve MySQL için Azure Veritabanı ile çalışmaya yeni başladığınız varsayılır.

Önkoşullar

Bu hızlı başlangıçta, başlangıç noktası olarak şu kılavuzlardan birinde oluşturulan kaynaklar kullanılmaktadır:

Önemli

Bağlandığınız IP adresinin Azure portalı veya Azure CLI kullanılarak sunucunun güvenlik duvarı kurallarına eklendiğinden emin olun

Ruby'yi yükleyin

Kendi bilgisayarınıza Ruby, Gem ve MySQL2 kitaplığı yükleyin.

  1. Ruby'nin 2.3 sürümünü indirip yükleyin.
  2. Başlat menüsünden yeni bir komut istemi (cmd) başlatın.
  3. Dizini değiştirip, Ruby’nin 2.3 sürümü dizinine geçin. cd c:\Ruby23-x64\bin
  4. Yüklenen sürümü görmek için ruby -v komutunu çalıştırarak Ruby yüklemesini test edin.
  5. Yüklenen sürümü görmek için gem -v komutunu çalıştırarak Gem yüklemesini test edin.
  6. gem install mysql2 komutunu çalıştırarak, Ruby için Mysql2 modülünü Gem kullanarak derleyin.

Bağlantı bilgilerini alma

MySQL için Azure Veritabanı'na bağlanmak üzere gereken bağlantı bilgilerini alın. Tam sunucu adına ve oturum açma kimlik bilgilerine ihtiyacınız vardır.

  1. Azure Portal’da oturum açın.
  2. Azure portalında sol taraftaki menüden Tüm kaynaklar'a tıklayın ve oluşturduğunuz sunucuyu (örneğin, mydemoserver) arayın.
  3. Sunucunun adına tıklayın.
  4. Sunucunun Genel Bakış panelinden Sunucu adı ile Sunucu yöneticisi oturum açma adı’nı not alın. Parolanızı unutursanız, bu panelden parolayı da sıfırlayabilirsiniz. Azure Database for MySQL server name

Ruby kodunu çalıştırma

  1. Aşağıdaki bölümde bulunan Ruby kodunu metin dosyalarına yapıştırın ve dosyaları .rb uzantısıyla bir proje klasörüne kaydedin (örneğin, C:\rubymysql\createtable.rb veya /home/username/rubymysql/createtable.rb).
  2. Kodu çalıştırmak için komut istemi veya Bash kabuğu başlatın. Dizini değiştirerek, proje klasörünüze geçin (cd rubymysql)
  3. Sonra uygulamayı çalıştırmak için Ruby komutunu ve ardından ruby createtable.rb örneğindeki gibi dosya adını yazın.
  4. Windows işletim sisteminde Ruby uygulamanız yol ortam değişkeninde değilse düğüm uygulamasını başlatmak için tam yolu kullanmanız gerekebilir; örneğin, "c:\Ruby23-x64\bin\ruby.exe" createtable.rb

Bağlanma ve tablo oluşturma

CREATE TABLE SQL deyimini kullanarak bir tabloyu bağlamak ve oluşturmak ve ardından INSERT INTO SQL deyimlerini kullanarak tabloya satırlar eklemek için aşağıdaki kodu kullanın.

Kod, MySQL sunucusuna bağlanmak için mysql2::client sınıfını kullanır. Ardından DROP, CREATE TABLE ve INSERT INTO komutlarını çalıştırmak için yöntemini query() çağırır. Son olarak, sonlandırmadan önce bağlantıyı kapatmak için öğesini çağırın close() .

host, database, username ve password dizelerini kendi değerlerinizle değiştirin.

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

Verileri okuma

Bağlanmak ve SELECT SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın.

Kod, yöntemiyle new()MySQL için Azure Veritabanı bağlanmak için mysql2::client sınıfını kullanır. Ardından SELECT komutlarını çalıştırmak için yöntemini query() çağırır. Ardından sonlandırmadan önce bağlantıyı kapatmak için yöntemini close() çağırır.

host, database, username ve password dizelerini kendi değerlerinizle değiştirin.

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

Verileri güncelleştirme

Bağlanmak ve bir UPDATE SQL deyimi kullanarak verileri güncelleştirmek için aşağıdaki kodu kullanın.

Kod, mysql2::client sınıfı .new() yöntemini kullanarak MySQL için Azure Veritabanıyla bağlantı kurar. Ardından UPDATE komutlarını çalıştırmak için yöntemini query() çağırır. Ardından sonlandırmadan önce bağlantıyı kapatmak için yöntemini close() çağırır.

host, database, username ve password dizelerini kendi değerlerinizle değiştirin.

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

Veri silme

Bağlanmak ve DELETE SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın.

Kod, MySQL sunucusuna bağlanmak, DELETE komutunu çalıştırmak ve ardından sunucu bağlantısını kapatmak için mysql2::client sınıfını kullanır.

host, database, username ve password dizelerini kendi değerlerinizle değiştirin.

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

Kaynakları temizleme

Bu hızlı başlangıç sırasında kullanılan tüm kaynakları temizlemek için aşağıdaki komutu kullanarak kaynak grubunu silin:

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

Sonraki adımlar