本文將為您介紹如何串連PolarDB MySQL版叢集。
準備工作
在串連資料庫叢集前,您需要進行以下操作:
完成準備工作後,您就可以串連資料庫叢集了。
串連資料庫叢集
串連資料庫叢集的方法有很多種,您可以根據實際業務需求來選擇適合的串連方式。以下列舉了部分串連資料庫叢集的樣本:
使用DMS串連叢集
DMS是阿里雲提供的圖形化的資料管理工具,它是一種集資料管理、結構管理、使用者授權、安全審計、資料趨勢、資料追蹤、BI圖表、效能與最佳化和伺服器管理於一體的資料管理服務。您無需藉助其他工具,即可直接在DMS上管理您的PolarDB叢集。
前往PolarDB控制台,在叢集列表中單擊目的地組群ID進入叢集詳情頁。在頁面右上方單擊登入資料庫。
在彈出的對話方塊中,輸入PolarDB MySQL版叢集中建立的資料庫帳號和資料庫密碼,單擊登入。
登入後,您可以在左側導覽列的已登入執行個體中查看到所登入的PolarDB MySQL版叢集,並進行相應的管理操作。
使用用戶端串連叢集
您可以使用任何通用的用戶端串連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() // 處理查詢結果 for rows.Next() { var id int var name string if err := rows.Scan(&id, &name); err != nil { log.Fatalf("Failed to scan row: %v", err) } fmt.Printf("ID: %d, Name: %s\n", id, name) } // 檢查是否有錯誤 if err := rows.Err(); err != nil { log.Fatalf("Error during iteration: %v", err) } }