Conecte-se a uma instância do PolarDB-X usando o Data Management (DMS), a CLI do MySQL, clientes de terceiros compatíveis com MySQL ou o código da sua aplicação.
Pré-requisitos
Antes de se conectar a um banco de dados PolarDB-X, conclua as etapas a seguir:
Conectar-se ao banco de dados
Existem várias formas de conectar-se a uma instância de banco de dados, dependendo da sua carga de trabalho. As seções a seguir apresentam exemplos comuns.
DMS
O Data Management (DMS) é uma ferramenta gráfica de gerenciamento de dados fornecida pela Alibaba Cloud. Ele integra um conjunto de serviços, incluindo gerenciamento de dados e esquemas, autorização de usuários, auditoria de segurança, tendências e rastreamento de dados, gráficos de BI, otimização de desempenho e gerenciamento de servidores. Use o DMS para gerenciar sua instância PolarDB-X diretamente, sem necessidade de outras ferramentas.
Acesse o console do PolarDB for Distributed. Na lista Instances, clique em ID da instância desejada para abrir sua página de detalhes. No canto superior direito da página, clique em Log On to Database.
-
Na caixa de diálogo, insira a Database Account e a Database Password da instância PolarDB-X e clique em Search.
NotaNo primeiro login via DMS, o modo de controle padrão é Flexible Management. Após o login, altere o modo de controle editando a instância. Para mais informações, consulte Editar informações da instância e Modos de controle.
Após configurar os parâmetros de login, clique em Test Connectivity no canto inferior esquerdo. Se a conexão falhar, revise a mensagem de erro e verifique as informações inseridas, como conta ou senha.
O sistema tenta adicionar automaticamente os endereços ip dos servidores DMS à lista de permissões da instância PolarDB-X. Caso essa tentativa falhe, adicione os endereços ip manualmente.
Após o login, a instância PolarDB-X aparece na seção Connected Instances do painel de navegação à esquerda. A partir daí, gerencie a instância.
Cliente GUI
O PolarDB-X suporta conexões dos seguintes clientes de terceiros. Baixe esses clientes nos sites oficiais respectivos.
MySQL Workbench (Recomendado)
SQLyog
Sequel Pro
Navicat for MySQL
Clientes GUI de terceiros suportam operações básicas de banco de dados, incluindo CRUD e DDL. Recursos avançados específicos do cliente podem não ser suportados pelo PolarDB-X.
Os passos a seguir usam o MySQL Workbench 8.0.29 como exemplo. Outros clientes seguem um procedimento semelhante.
Instale o MySQL Workbench. Para o link oficial de download, consulte a página de download do MySQL Workbench.
Abra o MySQL Workbench e escolha .
-
Insira as informações de conexão e clique em OK.
Parâmetro
Descrição
Exemplo
Hostname
pxc-xxx.polarx.rds.aliyuncs.com
Port
Número da porta correspondente ao endpoint do banco de dados.
NotaA porta padrão é 3306.
3306
Username
polardb_x_user
Password
Senha da conta do banco de dados.
Pass***233
CLI do MySQL
Com um cliente MySQL instalado no servidor, use a linha de comando para conectar-se à sua instância PolarDB-X.
Sintaxe:
mysql -h<endpoint> -P<port> -u<database_username> -p<database_password> -D<database_name>
Exemplo:
mysql -hpxc-xxx.polarx.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233 -Dtest_db
|
Parâmetro |
Descrição |
Exemplo |
|
-h |
pxc-xxx.polarx.rds.aliyuncs.com |
|
|
-P |
Número da porta correspondente ao endpoint do banco de dados. Nota
|
3306 |
|
-u |
polardb_x_user |
|
|
-p |
Senha da conta do banco de dados. Nota
Este parâmetro é obrigatório.
|
Pass***233 |
|
-D |
Nome do banco de dados ao qual deseja se conectar. Nota
Parâmetro opcional. |
test_db |
Aplicação
A conexão a uma instância PolarDB-X a partir de uma aplicação assemelha-se à conexão com um banco de dados MySQL padrão, exigindo apenas o endpoint do banco de dados, porta, conta e senha. Os exemplos a seguir mostram como acessar uma instância PolarDB-X usando linguagens de programação comuns:
Java
Este exemplo utiliza um projeto Maven e o driver JDBC do MySQL para conectar-se a uma instância PolarDB-X.
-
Adicione a dependência do driver JDBC do MySQL ao arquivo
pom.xml. Segue um exemplo de código:<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> -
Conecte-se à instância. Substitua os parâmetros
<HOST>, número da porta,<USER>,<PASSWORD>,<DATABASE>,<YOUR_TABLE_NAME>e<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-X instance endpoint, port, and database name String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC"; // Database account String user = "<USER>"; // Database password String password = "<PASSWORD>"; try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); // Table to query ResultSet rs = stmt.executeQuery("SELECT * FROM `<YOUR_TABLE_NAME>`"); while(rs.next()) { // Column to retrieve System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>")); } rs.close(); stmt.close(); conn.close(); } catch (Exception var7) { var7.printStackTrace(); } } }
Python
Neste exemplo, utilizamos Python 3 e a biblioteca PyMySQL para conectar-se a uma instância PolarDB-X.
-
Instale a biblioteca PyMySQL. Caso não esteja instalada, execute o seguinte comando:
pip3 install PyMySQL -
Conecte-se à instância. Substitua os parâmetros
<HOST>, número da porta,<USER>,<PASSWORD>,<DATABASE>e<YOUR_TABLE_NAME>.import pymysql # Connection parameters host = '<HOST>' # PolarDB-X instance endpoint port = 3306 # Default port is 3306 user = '<USER>' # Database account password = '<PASSWORD>' # Database password database = '<DATABASE>' # Target database name try: # Create a database connection connection = pymysql.connect( host=host, port=port, user=user, passwd=password, db=database ) # Create a cursor with connection.cursor() as cursor: # Run an SQL query sql = "SELECT * FROM `<YOUR_TABLE_NAME>`" # Table to query cursor.execute(sql) # Fetch query results results = cursor.fetchall() for row in results: print(row) finally: # Close the database connection if 'connection' in locals() and connection.open: connection.close()
Go
Este exemplo usa Go 1.23.0, o pacote database/sql e o driver go-sql-driver/mysql para conectar-se a uma instância PolarDB-X.
-
Instale o driver
go-sql-driver/mysqlexecutando o comando abaixo:go get -u github.com/go-sql-driver/mysql -
Conecte-se à instância. Substitua os parâmetros
<HOST>, número da porta,<USER>,<PASSWORD>,<DATABASE>e<YOUR_TABLE_NAME>.package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { // Connection parameters dbHost := "<HOST>" // PolarDB-X instance endpoint dbPort := "3306" // Default port is 3306 dbUser := "<USER>" // Database account dbPass := "<PASSWORD>" // Database password dbName := "<DATABASE>" // Target database name // Build the DSN (Data Source Name) dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPass, dbHost, dbPort, dbName) // Open the database connection db, err := sql.Open("mysql", dsn) if err != nil { log.Fatalf("Failed to connect to database: %v", err) } defer db.Close() // Ping the server to test the connection err = db.Ping() if err != nil { log.Fatalf("Failed to ping database: %v", err) } // Query the server version var result string err = db.QueryRow("SELECT VERSION()").Scan(&result) if err != nil { log.Fatalf("Failed to execute query: %v", err) } // Print the database version fmt.Printf("Connected to database, version: %s\n", result) // Run an SQL query rows, err := db.Query("SELECT * FROM `<YOUR_TABLE_NAME>`") // Table to query if err != nil { log.Fatalf("Failed to execute query: %v", err) } defer rows.Close() // Process the query results 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) } // Check for errors during row iteration if err := rows.Err(); err != nil { log.Fatalf("Error during iteration: %v", err) } }