本文将为您详细介绍如何快速使用PolarDB MySQL版边缘集群,包括创建集群、配置白名单、创建数据库账号以及连接数据库等相关操作。
支持的边缘地域
目前PolarDB MySQL版边缘集群仅支持海口电信、土耳其伊斯坦布尔-1、中国澳门-2以及越南河内-3。
1. 创建ENS网络
为您所需部署集群的区域创建相应的边缘服务网络。
若您尚未使用过边缘节点服务ENS,则需要根据实际业务需求填写相关资料,申请开通ENS服务。
前往边缘节点服务ENS控制台,选择左侧导航栏中的 ,单击创建网络。
在创建网络页面配置,根据目前已支持的边缘地域,创建对应的网络(VPC与交换机)。
2. 创建边缘集群
您可以前往PolarDB的边缘集群购买页,快速创建PolarDB MySQL版边缘集群。配置参数如下,其他设置可保持默认。
配置项 | 说明 |
计费类型 | 边缘云形态目前仅支持包年包月方式购买。 说明 包年包月为预付费模式。在创建集群时,您需选择固定规格的资源,并预先支付集群的费用。购买周期越长,所享受的折扣也越大。该模式一般适用于业务需求长期稳定的场景。 |
边缘主机房 | 选择集群的所在边缘云节点 说明 请确保PolarDB与需要连接的ENS实例位于同一个地域,否则它们内网无法直接互通。 |
兼容性 | 选择集群与MySQL兼容的版本。
|
子系列 | 支持选择独享规格和通用规格两种子系列:
关于两种子系列的详细对比,请参见如何选择通用规格和独享规格。 |
网络 | 选择第一步创建的ENS网络。如果您已创建边缘云实例,且该实例所在VPC符合您的规划,那么您可以选择该VPC和交换机。 |
规格 | 选择对应的节点规格,不同规格间的CPU、内存、最大存储空间以及IOPS存在一定差异,您可根据实际业务需求选择。 |
节点个数 | 默认为两个节点(一读写一只读),您可以根据实际业务需求进行配置。 说明
|
存储类型 | PolarDB边缘云基于ENS云盘,是阿里云为边缘节点服务ENS提供的数据块级别的块存储产品,具有低时延、高性能、持久性、高可靠等特点。分以下两种规格:
|
存储空间 | 配置需要预购的存储空间大小。默认为100 GB。 |
3. 创建数据库账号
您可以前往PolarDB边缘云控制台,在边缘云集群中单击目标集群ID进入集群详情页。在 中创建数据库账号。
数据库账号类型分为高权限账号和普通账号,这两种账号的权限存在差异。您可以根据实际业务需求选择创建相应的数据库账号。更多信息,请参见账号权限。
4. 获取集群地址
您可以前往PolarDB边缘云控制台,在边缘云集群中单击目标集群ID进入集群详情页。在数据库连接中获取数据连接地址。
私网地址是您的边缘云VPC中的IP地址,系统使用负载均衡器(Load Balancer)关联各计算节点。
推荐使用集群地址,默认端口号为3306。
5. 连接数据库
连接数据库集群的方法有很多种,您可以根据实际业务需求来选择适合的连接方式。以下列举了部分连接数据库集群的示例:
使用客户端连接集群
您可以使用任何通用的客户端连接PolarDB集群。此处以MySQL Workbench 8.0.29版本为例,其它客户端的操作类似。
安装MySQL Workbench。官方下载地址请参见MySQL Workbench下载页面。
打开MySQL Workbench,选择
。输入连接信息,单击OK。
使用命令行连接集群
如果您的服务器安装了MySQL客户端,可以通过命令行连接PolarDB MySQL版数据库集群。
语法:
mysql -h<连接地址> -P<端口> -u<数据库用户名> -p<数据库用户密码>
示例:
mysql -h pc-2***.rwlb.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233
参数 | 说明 | 示例 |
-h | pc-2***.rwlb.rds.aliyuncs.com | |
-P | 数据库连接地址的端口号,与数据库连接地址相对应。 说明
| 3306 |
-u | polardb_mysql_user | |
-p | 数据库账号密码。 说明 该参数为必填参数。
| Pass***233 |
使用应用程序连接集群
连接PolarDB MySQL版集群的方式与连接其他MySQL数据库的方式一样,仅需将数据库连接地址、端口、账号及密码等进行替换即可。以下为您列举部分开发语言如何通过应用程序访问PolarDB数据库:
Java
此处以Maven项目为例,使用MySQL JDBC驱动连接PolarDB MySQL版集群。
首先,您需要在pom.xml文件中添加MySQL JDBC驱动的依赖,代码示例:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency>
连接集群。请将参数
<HOST>
、端口号、<USER>
、<PASSWORD>
、<DATABASE>
、<YOUR_TABLE_NAME>
及<YOUR_TABLE_COLUMN_NAME>
进行替换。import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class DatabaseConnection { public DatabaseConnection() { } public static void main(String[] args) { // PolarDB集群连接地址、端口、需要连接的数据库名 String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC"; // 数据库账号 String user = "<USER>"; // 数据库账号的密码 String password = "<PASSWORD>"; try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); // 需要检索的数据表名 ResultSet rs = stmt.executeQuery("SELECT * FROM `<YOUR_TABLE_NAME>`"); while(rs.next()) { // 需要检索的数据表的列名 System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>")); } rs.close(); stmt.close(); conn.close(); } catch (Exception var7) { var7.printStackTrace(); } } }
Python
此处以Python3为例,使用PyMySQL库连接PolarDB MySQL版集群。
首先,您需要安装PyMySQL库。如果您还没有安装,可以通过以下命令进行安装:
pip3 install PyMySQL
连接集群。请将参数
<HOST>
、端口号、<USER>
、<PASSWORD>
、<DATABASE>
及<YOUR_TABLE_NAME>
进行替换。import pymysql # 数据库连接参数 host = '<HOST>' # PolarDB集群连接地址 port = 3306 # 默认端口3306 user = '<USER>' # 数据库账号 password = '<PASSWORD>' # 数据库账号的密码 database = '<DATABASE>' # 需要连接的数据库名 try: # 创建数据库连接 connection = pymysql.connect( host=host, port=port, user=user, passwd=password, db=database ) # 获取操作游标 with connection.cursor() as cursor: # 执行 SQL 查询 sql = "SELECT * FROM `<YOUR_TABLE_NAME>`" # 需要检索的数据表名 cursor.execute(sql) # 获取查询结果 results = cursor.fetchall() for row in results: print(row) finally: # 关闭数据库连接 if 'connection' in locals() and connection.open: connection.close()
Go
此处以go1.23.0为例,使用database/sql
包和go-sql-driver/mysql
驱动来连接PolarDB MySQL版集群。
首先,您需要安装
go-sql-driver/mysql
驱动。您可以通过以下命令进行安装:go get -u github.com/go-sql-driver/mysql
连接集群。请将参数
<HOST>
、端口号、<USER>
、<PASSWORD>
、<DATABASE>
及<YOUR_TABLE_NAME>
进行替换。package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { // 数据库连接参数 dbHost := "<HOST>" // PolarDB集群连接地址 dbPort := "3306" // 默认端口3306 dbUser := "<USER>" // 数据库账号 dbPass := "<PASSWORD>" // 数据库账号的密码 dbName := "<DATABASE>" // 需要连接的数据库名 // 构建 DSN (Data Source Name) dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPass, dbHost, dbPort, dbName) // 打开数据库连接 db, err := sql.Open("mysql", dsn) if err != nil { log.Fatalf("Failed to connect to database: %v", err) } defer db.Close() // 测试连接 err = db.Ping() if err != nil { log.Fatalf("Failed to ping database: %v", err) } // 创建一个操作游标 var result string err = db.QueryRow("SELECT VERSION()").Scan(&result) if err != nil { log.Fatalf("Failed to execute query: %v", err) } // 输出数据库版本 fmt.Printf("Connected to database, version: %s\n", result) // 执行 SQL 查询 rows, err := db.Query("SELECT * FROM `<YOUR_TABLE_NAME>`") // 需要检索的数据表名 if err != nil { log.Fatalf("Failed to execute query: %v", err) } defer rows.Close() }