Schnellstart: Verwenden von Ruby zum Herstellen einer Verbindung und zum Abfragen von Daten in Azure Database for MySQL

GILT FÜR:Azure Database for MySQL – Single Server

Wichtig

Azure Database for MySQL single server is on the retirement path. Es wird dringend empfohlen, ein Upgrade auf azure Database for MySQL flexiblen Server durchzuführen. Weitere Informationen zum Migrieren zu Azure Database for MySQL flexible Server finden Sie unter Was geschieht mit Azure Database for MySQL Single Server?

In diesem Schnellstart wird gezeigt, wie Sie auf Windows-, Linux- und Mac-Plattformen eine Verbindung mit einer Azure Database for MySQL-Instanz mithilfe einer Ruby-Anwendung und dem Gem mysql2 herstellen. Es wird veranschaulicht, wie Sie SQL-Anweisungen zum Abfragen, Einfügen, Aktualisieren und Löschen von Daten in der Datenbank verwenden. Bei den Schritten in diesem Artikel wird davon ausgegangen, dass Sie mit der Ruby-Entwicklung vertraut sind und noch keine Erfahrung mit Azure Database for MySQL haben.

Voraussetzungen

In diesem Schnellstart werden die Ressourcen, die in den folgenden Anleitungen erstellt wurden, als Startpunkt verwendet:

Wichtig

Sicherstellen, dass der IP-Adresse, über die Sie eine Verbindung herstellen, die Firewallregeln des Servers über das Azure-Portal oder die Azure CLI hinzugefügt wurden

Installieren von Ruby

Installieren Sie Ruby, Gem und die MySQL2-Bibliothek auf Ihrem eigenen Computer.

  1. Laden Sie Version 2.3 von Ruby herunter, und installieren Sie sie.
  2. Starten Sie über das Menü „Start“ eine neue Eingabeaufforderung (cmd).
  3. Wechseln Sie in das Ruby-Verzeichnis für Version 2.3. cd c:\Ruby23-x64\bin
  4. Überprüfen Sie die Ruby-Installation, indem Sie den Befehl ruby -v ausführen, um die installierte Version anzuzeigen.
  5. Überprüfen Sie die Gem-Installation, indem Sie den Befehl gem -v ausführen, um die installierte Version anzuzeigen.
  6. Erstellen Sie das Mysql2-Modul für Ruby, indem Sie Gem mit dem Befehl gem install mysql2 ausführen.

Abrufen von Verbindungsinformationen

Rufen Sie die Verbindungsinformationen ab, die zum Herstellen einer Verbindung mit der Azure SQL-Datenbank für MySQL erforderlich sind. Sie benötigen den vollqualifizierten Servernamen und die Anmeldeinformationen.

  1. Melden Sie sich beim Azure-Portalan.
  2. Klicken Sie im Azure-Portal im linken Menü auf Alle Ressourcen, und suchen Sie dann nach dem soeben erstellten Server, z.B. mydemoserver.
  3. Klicken Sie auf den Servernamen.
  4. Notieren Sie sich im Bereich Übersicht des Servers den Servernamen und den Anmeldenamen des Serveradministrators. Wenn Sie Ihr Kennwort vergessen haben, können Sie es in diesem Bereich auch zurücksetzen. Azure Database for MySQL server name

Ausführen von Ruby-Code

  1. Fügen Sie den Ruby-Code aus den Abschnitten unten in Textdateien ein, und speichern Sie dann die Dateien in einem Projektordner mit der Dateierweiterung „.rb“, z.B. C:\rubymysql\createtable.rb oder /home/username/rubymysql/createtable.rb.
  2. Starten Sie zum Ausführen des Codes die Eingabeaufforderung oder die Bash-Shell. Wechseln Sie mit cd rubymysql in das Verzeichnis Ihres Projektordners.
  3. Geben Sie anschließend den Ruby-Befehl gefolgt vom Dateinamen ein, z.B. ruby createtable.rb, um die Anwendung auszuführen.
  4. Unter Windows müssen Sie unter Umständen den vollständigen Pfad verwenden, um die Ruby-Anwendung zu starten, z.B. "c:\Ruby23-x64\bin\ruby.exe" createtable.rb, wenn sich die Ruby-Anwendung nicht unter dem Pfad der Umgebungsvariablen befindet.

Herstellen einer Verbindung und Erstellen einer Tabelle

Verwenden Sie den folgenden Code, um eine Verbindung herzustellen und eine Tabelle zu erstellen, indem Sie eine SQL-Anweisung des Typs CREATE TABLE gefolgt von SQL-Anweisungen des Typs INSERT INTO zum Hinzufügen von Zeilen zur Tabelle nutzen.

Im Code wird die mysql2::client-Klasse verwendet, um eine Verbindung mit dem MySQL-Server herzustellen. Anschließend wird die query()-Methode aufgerufen, um die Befehle DROP, CREATE TABLE und INSERT INTO auszuführen. Rufen Sie zum Schluss close() auf, um die Verbindung vor dem Beenden zu schließen.

Ersetzen Sie die Zeichenfolgen host, database, username und password durch Ihre eigenen Werte.

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

Lesen von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs SELECT zu verbinden und zu lesen.

Im Code wird eine mysql2::client-Klasse verwendet, um mit der new()-Methode eine Verbindung mit Azure Database for MySQL herzustellen. Anschließend wird die query()-Methode aufgerufen, um die SELECT-Befehle auszuführen. Anschließend wird die close()-Methode aufgerufen, um die Verbindung vor dem Beenden zu schließen.

Ersetzen Sie die Zeichenfolgen host, database, username und password durch Ihre eigenen Werte.

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

Aktualisieren von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs UPDATE zu verbinden und zu aktualisieren.

Im Code wird eine .new()-Methode der mysql2::client-Klasse verwendet, um eine Verbindung mit der Azure-Datenbank für MySQL herzustellen. Dann wird die Methode query() aufgerufen, um die UPDATE-Befehle auszuführen. Anschließend wird die close()-Methode aufgerufen, um die Verbindung vor dem Beenden zu schließen.

Ersetzen Sie die Zeichenfolgen host, database, username und password durch Ihre eigenen Werte.

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

Löschen von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs DELETE zu verbinden und zu lesen.

Im Code wird die mysql2::client-Klasse verwendet, um eine Verbindung mit dem MySQL-Server herzustellen, den DELETE-Befehl auszuführen und dann die Verbindung mit dem Server zu beenden.

Ersetzen Sie die Zeichenfolgen host, database, username und password durch Ihre eigenen Werte.

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

Bereinigen von Ressourcen

Löschen Sie die Ressourcengruppe mit dem folgenden Befehl, um alle in dieser Schnellstartanleitung verwendeten Ressourcen zu bereinigen:

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

Nächste Schritte