pip install mysql-connector-python
从 Azure 门户获取连接到 Azure Database for MySQL 所需的连接信息。 需要服务器名称、数据库名称和登录凭据。
登录 Azure 门户。
在门户搜索栏中,搜索并选择创建的 Azure Database for MySQL 服务器,如 mydemoserver。
从服务器的“概览”页中记下“服务器名称”和“服务器管理员登录名”。 如果忘记了密码,也可通过此页重置密码。
在文本编辑器中创建新的文件。
将代码示例添加到文件。 在代码中,将 <mydemoserver>
、<myadmin>
、<mypassword>
和 <mydatabase>
占位符替换为 MySQL 服务器和数据库的值。
Azure Database for MySQL 服务器默认启用 SSL。 从本地环境进行连接可能需要下载 DigiCertGlobalRootG2 SSL 证书。 将代码中的 ssl_ca
值替换为指向计算机上此文件的路径。
将文件保存在项目文件夹中,扩展名为 .py,例如 C:\pythonmysql\createtable.py 或 /home/username/pythonmysql/createtable.py。
若要运行代码,请打开命令提示符或 bash
shell,将目录更改为项目文件夹,例如 cd pythonmysql
。 键入 python
命令,后跟文件名,例如 python createtable.py
,然后按 Enter。
在 Windows 上,如果找不到 python.exe,则可能需要将 Python 路径添加到 PATH 环境变量中,或提供 python.exe 的完整路径,例如 C:\python27\python.exe createtable.py
。
步骤 1:创建表并插入数据
通过以下代码连接到服务器和数据库,创建一个表,然后使用 INSERT SQL 语句加载数据。此代码导入 mysql.connector 库,并使用以下方法:
connect() 函数,用于通过配置集合中的参数连接到 Azure Database for MySQL。
cursor.execute() 方法,用于对 MySQL 数据库执行 SQL 查询。
cursor.close(),在用完游标后使用。
conn.close(),用于关闭连接。
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>@<mydemoserver>',
'password':'<mypassword>',
'database':'<mydatabase>',
'client_flags': [mysql.connector.ClientFlag.SSL],
'ssl_ca': '<path-to-SSL-cert>/DigiCertGlobalRootG2.crt.pem'
# Construct connection string
conn = mysql.connector.connect(**config)
print("Connection established")
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with the user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cursor = conn.cursor()
# Drop previous table of same name if one exists
cursor.execute("DROP TABLE IF EXISTS inventory;")
print("Finished dropping table (if existed).")
# Create table
cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
print("Finished creating table.")
# Insert some data into table
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
print("Inserted",cursor.rowcount,"row(s) of data.")
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
print("Inserted",cursor.rowcount,"row(s) of data.")
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
print("Inserted",cursor.rowcount,"row(s) of data.")
# Cleanup
conn.commit()
cursor.close()
conn.close()
print("Done.")
步骤 2:读取数据
使用以下代码进行连接,并使用 SELECT SQL 语句读取数据。 该代码导入 mysql.connector 库,并使用 cursor.execute() 方法对 MySQL 数据库执行 SQL 查询。
代码使用 fetchall() 方法读取数据行,将结果集保留在集合行中,并使用 for
迭代器对行进行循环操作。
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>@<mydemoserver>',
'password':'<mypassword>',
'database':'<mydatabase>',
'client_flags': [mysql.connector.ClientFlag.SSL],
'ssl_ca': '<path-to-SSL-cert>/DigiCertGlobalRootG2.crt.pem'
# Construct connection string
conn = mysql.connector.connect(**config)
print("Connection established")
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with the user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cursor = conn.cursor()
# Read data
cursor.execute("SELECT * FROM inventory;")
rows = cursor.fetchall()
print("Read",cursor.rowcount,"row(s) of data.")
# Print all rows
for row in rows:
print("Data row = (%s, %s, %s)" %(str(row[0]), str(row[1]), str(row[2])))
# Cleanup
conn.commit()
cursor.close()
conn.close()
print("Done.")
步骤 3:更新数据
使用以下代码进行连接,并使用 UPDATE SQL 语句更新数据。 该代码导入 mysql.connector 库,并使用 cursor.execute() 方法对 MySQL 数据库执行 SQL 查询。
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>@<mydemoserver>',
'password':'<mypassword>',
'database':'<mydatabase>',
'client_flags': [mysql.connector.ClientFlag.SSL],
'ssl_ca': '<path-to-SSL-cert>/DigiCertGlobalRootG2.crt.pem'
# Construct connection string
conn = mysql.connector.connect(**config)
print("Connection established")
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with the user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cursor = conn.cursor()
# Update a data row in the table
cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (300, "apple"))
print("Updated",cursor.rowcount,"row(s) of data.")
# Cleanup
conn.commit()
cursor.close()
conn.close()
print("Done.")
步骤 4:删除数据
使用以下代码进行连接,并使用 DELETE SQL 语句删除数据。 该代码导入 mysql.connector 库,并使用 cursor.execute() 方法对 MySQL 数据库执行 SQL 查询。
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>@<mydemoserver>',
'password':'<mypassword>',
'database':'<mydatabase>',
'client_flags': [mysql.connector.ClientFlag.SSL],
'ssl_ca': '<path-to-SSL-cert>/DigiCertGlobalRootG2.crt.pem'
# Construct connection string
conn = mysql.connector.connect(**config)
print("Connection established")
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with the user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cursor = conn.cursor()
# Delete a data row in the table
cursor.execute("DELETE FROM inventory WHERE name=%(param1)s;", {'param1':"orange"})
print("Deleted",cursor.rowcount,"row(s) of data.")
# Cleanup
conn.commit()
cursor.close()
conn.close()
print("Done.")
若要清理本快速入门中使用的所有资源,请使用以下命令删除该资源组:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
使用门户管理 Azure Database for MySQL 服务器
使用 CLI 管理 Azure Database for MySQL 服务器