MySQL 8.0 连接字符串

MySQL 8.0 是一种常用的关系型数据库管理系统,被广泛应用于各种应用程序中。在使用 MySQL 8.0 进行开发时,连接数据库是一个必备的步骤。连接字符串是一种用于指定连接数据库的参数的字符串。本文将介绍 MySQL 8.0 连接字符串的格式和用法,并提供代码示例。

连接字符串的格式

MySQL 8.0 连接字符串由多个键值对组成,每个键值对用分号分隔。每个键值对的格式为key=value。以下是一些常用的连接字符串选项:

  • host:指定数据库服务器的主机名或 IP 地址。
  • port:指定数据库服务器的端口号,默认为 3306。
  • user:指定连接数据库的用户名。
  • password:指定连接数据库的密码。
  • database:指定连接的数据库名称。

除了上述选项,还可以通过连接字符串指定其他选项,如编码方式、超时时间等。

连接字符串的用法

连接字符串可以通过多种方式指定。下面是一些常见的用法。

直接指定字符串

可以直接在代码中指定连接字符串,如下所示:

import mysql.connector

conn = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="mydatabase"
)

从配置文件中读取

可以将连接字符串保存在配置文件中,并在代码中读取配置文件。常见的配置文件格式包括 JSON、YAML 等。以下是一个使用 JSON 格式的配置文件示例:

{
  "host": "localhost",
  "user": "root",
  "password": "password",
  "database": "mydatabase"
}

可以使用第三方库(如 json)读取配置文件,并将读取到的配置作为参数传递给连接函数。示例代码如下:

import json
import mysql.connector

with open("config.json", "r") as f:
  config = json.load(f)

conn = mysql.connector.connect(**config)

从环境变量中读取

可以将连接字符串的各个部分保存在环境变量中,然后在代码中读取环境变量。这样做的好处是可以避免将敏感信息(如密码)硬编码在代码中。示例代码如下:

import os
import mysql.connector

conn = mysql.connector.connect(
  host=os.getenv("DB_HOST"),
  user=os.getenv("DB_USER"),
  password=os.getenv("DB_PASSWORD"),
  database=os.getenv("DB_DATABASE")
)

完整示例

下面是一个完整的示例,展示了如何使用连接字符串连接到 MySQL 8.0 数据库,并执行一条简单的 SQL 查询。

import mysql.connector

conn = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="mydatabase"
)

cursor = conn.cursor()
cursor.execute("SELECT * FROM mytable")
rows = cursor.fetchall()

for row in rows:
  print(row)

cursor.close()
conn.close()

在上述示例中,我们首先使用连接字符串连接到 MySQL 8.0 数据库。然后,创建一个游标对象,并使用该游标执行一条 SQL 查询。最后,关闭游标和数据库连接。

总结

连接字符串是连接到 MySQL 8.0 数据库的一种方便的方式。通过连接字符串,我们可以指定数据库服务器的地址、认证信息等参数。本文介绍了连接字符串的格式和用法,并提供了代码示例。在实际开发中,我们可以根据具体情况选择最适合的连接字符串指定方式,并灵活运用。