Megosztás a következőn keresztül:


Rövid útmutató: Adatok csatlakoztatása és lekérdezése a Ruby használatával az Azure Database for MySQL-ben

A következőkre vonatkozik: Azure Database for MySQL – Önálló kiszolgáló

Fontos

Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?

Ez a rövid útmutató bemutatja, hogyan csatlakozhat egy Azure Database for MySQL-hez Egy Ruby-alkalmazás és a Mysql2 gem használatával Windows, Linux és Mac platformokról. Bemutatjuk, hogy az SQL-utasítások használatával hogyan kérdezhetők le, illeszthetők be, frissíthetők és törölhetők az adatok az adatbázisban. Ez a témakör azt feltételezi, hogy Ön a Ruby használata terén rendelkezik fejlesztési tapasztalatokkal, de a MySQL-hez készült Azure Database használatában még járatlan.

Előfeltételek

Ebben a rövid útmutatóban a következő útmutatók valamelyikében létrehozott erőforrásokat használunk kiindulási pontként:

Fontos

Győződjön meg arról, hogy a kiszolgáló tűzfalszabályai az Azure Portal vagy az Azure CLI használatával lettek hozzáadva a csatlakozó IP-címhez

Telepítse a Rubyt

Telepítse a Rubyt, a Gemet és a MySQL2 könyvtárat a saját számítógépére.

  1. Töltse le és telepítse a Ruby 2.3-as verzióját.
  2. Nyisson meg egy új parancssort (cmd) a Start menüből.
  3. Lépjen a Ruby-könyvtárba a 2.3-as verzióhoz. cd c:\Ruby23-x64\bin
  4. A Ruby telepítésének ellenőrzéséhez futtassa a ruby -v parancsot a telepített verzió megtekintéséhez.
  5. A Gem telepítésének ellenőrzéséhez futtassa a gem -v parancsot a telepített verzió megtekintéséhez.
  6. A Gem használatával állítsa össze a Mysql2 modult a Rubyhoz a gem install mysql2 parancs futtatásával.

Kapcsolatadatok lekérése

Kérje le a MySQL-hez készült Azure Database-hez való csatlakozáshoz szükséges kapcsolatadatokat. Szüksége lesz a teljes kiszolgálónévre és a bejelentkezési hitelesítő adatokra.

  1. Jelentkezzen be az Azure Portalra.
  2. Az Azure Portal bal oldali menüjében kattintson a Minden erőforrás lehetőségre, és keressen rá a létrehozott kiszolgálóra (például mydemoserver).
  3. Kattintson a kiszolgálónévre.
  4. A kiszolgáló Áttekintés paneléről jegyezze fel a Kiszolgálónevet és a Kiszolgáló-rendszergazdai bejelentkezési nevet. Ha elfelejti a jelszavát, ezen a panelen új jelszót is tud kérni.

Ruby-kód futtatása

  1. Illessze be a Ruby-kódot az alábbi szakaszokból szövegfájlokba, majd mentse a fájlokat egy projektmappába .rb kiterjesztéssel (például a C:\rubymysql\createtable.rb vagy /home/username/rubymysql/createtable.rb elérési úton).
  2. A kód futtatásához nyissa meg a parancssort vagy a Bash rendszerhéjat. Lépjen a projektmappára: cd rubymysql
  3. Ezután írja be a Ruby-parancsot, majd a fájlnevet (ruby createtable.rb) az alkalmazás futtatásához.
  4. Ha Windows rendszeren a Ruby-alkalmazás nincs a path környezeti változóban, előfordulhat, hogy a teljes elérési utat kell használnia a Node.js-alkalmazás elindításához, például: "c:\Ruby23-x64\bin\ruby.exe" createtable.rb

Csatlakozás és tábla létrehozása

A következő kód használatával csatlakozhat, és létrehozhat egy táblát a CREATE TABLE SQL-utasítással, majd az INSERT INTO SQL-utasításokkal sorokat adhat hozzá a táblához.

A kód egy mysql2::client osztályt használ a MySQL-kiszolgálóhoz való csatlakozáshoz. Ezután metódust hív query() meg a DROP, a CREATE TABLE és az INSERT INTO parancs futtatásához. Végül hívja meg a close() kapcsolatot a kapcsolat bezárásához a megszakítás előtt.

Cserélje le a host, database, username, és password sztringeket a saját értékekre.

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

Adatok beolvasása

A következő kóddal csatlakozhat, és beolvashatja az adatokat a SELECT SQL-utasítással.

A kód egy mysql2::client osztály használatával csatlakozik az Azure Database for MySQL-hez metódussal new(). Ezután metódust hív query() meg a SELECT parancsok futtatásához. Ezután meghívja a metódust close() , hogy zárja be a kapcsolatot a megszakítás előtt.

Cserélje le a host, database, username, és password sztringeket a saját értékekre.

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

Adatok frissítése

Az alábbi kód használatával csatlakozhat és végezheti el az adatok módosítását egy UPDATE SQL-utasítás segítségével.

A kód a mysql2::client class .new() metódust használja a MySQL-hez készült Azure-adatbázishoz való csatlakozáshoz. Ezután meghívja a metódust query() az UPDATE-parancsok futtatásához. Ezután meghívja a metódust close() , hogy zárja be a kapcsolatot a megszakítás előtt.

Cserélje le a host, database, username, és password sztringeket a saját értékekre.

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

Adatok törlése

A következő kóddal csatlakozhat, és beolvashatja az adatokat a DELETE SQL-utasítással.

A kód egy mysql2::client osztályt használ a MySQL-kiszolgálóhoz való csatlakozáshoz, futtassa a DELETE parancsot, majd zárja be a kapcsolatot a kiszolgálóval.

Cserélje le a host, database, username, és password sztringeket a saját értékekre.

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 erőforrások eltávolítása

A rövid útmutató során használt összes erőforrás törléséhez törölje az erőforráscsoportot az alábbi paranccsal:

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

Következő lépések