Mulai Cepat: Menggunakan Ruby untuk menghubungkan dan mengkueri data di Azure Database for MySQL
BERLAKU UNTUK: Azure 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:
- Membuat server Azure Database for MySQL menggunakan portal Azure
- Membuat server Azure Database for MySQL menggunakan Azure CLI
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.
- Unduh dan instal Ruby versi 2.3.
- Luncurkan perintah baru (cmd) dari menu Mulai.
- Ubah direktori menjadi direktori Ruby untuk versi 2.3.
cd c:\Ruby23-x64\bin
- Uji penginstalan Ruby dengan menjalankan perintah untuk
ruby -v
melihat versi yang diinstal. - Uji penginstalan Ruby dengan menjalankan perintah untuk
gem -v
melihat versi yang diinstal. - 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.
- Masuk ke portal Azure.
- Pada menu sebelah kiri di portal Microsoft Azure, klik Semua sumber daya, lalu cari server yang telah Anda buat (seperti mydemoserver).
- Klik di nama server.
- 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.
Jalankan kode Ruby
- 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
). - Untuk menjalankan kode, luncurkan perintah atau {i>Bash shellcd rubymysql
- Lalu ketik perintah Ruby diikuti dengan nama file, seperti
ruby createtable.rb
untuk menjalankan aplikasi. - 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