Mulai Cepat: Menggunakan Ruby untuk menghubungkan dan mengkueri data di Azure Database for MySQL

BERLAKU UNTUKAzure Database for MySQL - Server Tunggal

Penting

Server tunggal Azure Database for MySQL berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke server fleksibel Azure Database for MySQL. Untuk informasi selengkapnya tentang migrasi ke server fleksibel Azure Database for MySQL, lihat Apa yang terjadi pada Server Tunggal Azure Database for MySQL?

Mulai cepat ini menunjukkan cara menyambungkan ke Azure Database for MySQL menggunakan aplikasi Ruby dan permata mysql2 dari platform Windows, Linux, dan Mac. Ini menunjukkan cara menggunakan pernyataan SQL untuk mengkueri, menyisipkan, memperbarui, dan menghapus data dalam database. Topik ini mengasumsikan bahwa Anda sudah memahami pengembangan menggunakan Ruby dan Anda baru menggunakan Azure Database for MySQL.

Prasyarat

Mulai cepat ini menggunakan sumber daya yang dibuat di salah satu panduan ini sebagai titik awal:

Penting

Pastikan aturan firewall server telah ditambahkan ke alamat IP tempat Anda dihubungkan menggunakan portal Microsoft Azure atau Azure CLI

Instal Ruby

Instal Ruby, Gem, dan pustaka MySQL2 di komputer Anda sendiri.

  1. Unduh dan instal Ruby versi 2.3.
  2. Luncurkan perintah baru (cmd) dari menu Mulai.
  3. Ubah direktori menjadi direktori Ruby untuk versi 2.3. cd c:\Ruby23-x64\bin
  4. Uji penginstalan Ruby dengan menjalankan perintah untuk ruby -v melihat versi yang diinstal.
  5. Uji penginstalan Ruby dengan menjalankan perintah untuk gem -v melihat versi yang diinstal.
  6. Buat modul Mysql2 untuk Ruby menggunakan Gem dengan menjalankan perintah gem install mysql2.

Mendapatkan informasi koneksi

Dapatkan informasi koneksi yang diperlukan untuk terhubung ke Azure Database for MySQL. Anda memerlukan nama server dan kredensial untuk masuk yang sepenuhnya memenuhi syarat.

  1. Masuk ke portal Azure.
  2. Pada menu sebelah kiri di portal Microsoft Azure, klik Semua sumber daya, lalu cari server yang telah Anda buat (seperti mydemoserver).
  3. Klik di nama server.
  4. Dari panel server Gambaran Umum, buat catatan Nama server dan Nama untuk masuk admin server. Jika lupa kata sandi, Anda juga dapat mengatur ulang kata sandi dari panel ini. Azure Database for MySQL server name

Jalankan kode Ruby

  1. Tempelkan kode Ruby dari bagian di bawah ini ke dalam file teks, lalu simpan file ke folder proyek dengan ekstensi file .rb (seperti C:\rubymysql\createtable.rb atau /home/username/rubymysql/createtable.rb).
  2. Untuk menjalankan kode, luncurkan perintah atau {i>Bash shellcd rubymysql
  3. Lalu ketik perintah Ruby diikuti dengan nama file, seperti ruby createtable.rb untuk menjalankan aplikasi.
  4. Pada Windows, jika aplikasi Ruby tidak berada di jalur variabel lingkungan Anda, Anda mungkin perlu menggunakan jalur lengkap untuk meluncurkan aplikasi node, seperti "c:\Ruby23-x64\bin\ruby.exe" createtable.rb

Menyambungkan dan membuat tabel

Gunakan kode berikut untuk menghubungkan dan membuat tabel menggunakan pernyataan SQL CREATE TABLE, diikuti dengan pernyataan SQLINSERT INTO untuk menambahkan baris ke dalam tabel.

Kode ini menggunakan mysql2::client class untuk terhubung ke server MySQL. Lalu kode tersebut akan memanggil metode query() untuk menjalankan perintah DROP, CREATE TABLE, dan INSERT INTO. Akhirnya, panggil close() untuk menutup koneksi sebelum mengakhiri.

Ganti string host, database, username, dan password dengan nilai Anda sendiri.

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

Membaca data

Gunakan kode berikut untuk menyambungkan dan membaca data menggunakan pernyataan SQL SELECT.

Kode ini menggunakan mysql2::client class untuk terhubung ke Azure Database for MySQL dengan metode new(). Lalu kode ini memanggil metode query() untuk menjalankan perintah SELECT. Kemudian kode akan memanggil metode close() untuk menutup koneksi sebelum mengakhirinya.

Ganti string host, database, username, dan password dengan nilai Anda sendiri.

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

Memperbarui data

Gunakan kode berikut untuk menyambungkan dan memperbarui data menggunakan pernyataan SQL UPDATE.

Kode ini menggunakan metode mysql2::client class .new() untuk terhubung ke Azure Database for MySQL. Kemudian kode ini akan memanggil metode query() untuk menjalankan perintah UPDATE. Kemudian kode akan memanggil metode close() untuk menutup koneksi sebelum mengakhirinya.

Ganti string host, database, username, dan password dengan nilai Anda sendiri.

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

Menghapus data

Gunakan kode berikut untuk menghubungkan dan membaca data menggunakan pernyataan SQL DELETE.

Kode menggunakan mysql2::client class untuk terhubung ke server MySQL, menjalankan perintah DELETE lalu tutup koneksi ke server.

Ganti string host, database, username, dan password dengan nilai Anda sendiri.

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

Membersihkan sumber daya

Untuk membersihkan semua sumber daya yang digunakan selama mulai cepat ini, hapus grup sumber daya menggunakan perintah berikut:

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

Langkah berikutnya