Todos os produtos
Search
Central de documentação

PolarDB:Connect to a database

Última atualização: Jul 10, 2026

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:

  • Obter o endpoint e a porta do banco de dados

    Acesse o console do PolarDB for Distributed. Na lista Instances, clique em ID da instância desejada para visualizar suas informações básicas. Na seção Connection Information, localize o endpoint e a porta do banco de dados.

    Nota
    • Selecione Intranet ou External network conforme o seu ambiente de acesso.

      • Se você utilizar uma instância ECS para acessar o PolarDB-X e tanto a instância ECS quanto o PolarDB-X estiverem na mesma VPC, selecione Internal Network para obter o melhor desempenho do PolarDB-X.

      • Para acessar o PolarDB-X a partir do seu ambiente local, selecione Internet. Obtenha um endpoint público clicando em Apply for Public IP Address à direita. A opção Internet refere-se à internet pública. O acesso à instância PolarDB-X pela Internet não oferece desempenho ideal.

    • Não é possível usar a Internal Network para conectar-se a uma instância PolarDB-X a partir de um host virtual ou de uma instância do Simple Application Server.

  • Criar uma conta de banco de dados.

  • Configurar uma lista de permissões da instância

    Acesse o console do PolarDB for Distributed e clique em ID da instância desejada na lista Instances. No painel de navegação à esquerda, escolha Configuration and Management > Security Management. Na página exibida, configure uma lista de permissões de ip na seção Configuration ou clique em Add Whitelist. Para mais informações, consulte Configurar listas de permissões.

    Na página de configurações da lista de permissões, visualize a lista de grupos e configure as permissões usando os botões correspondentes.

    Nota
    • Se utilizar uma instância ECS para acessar o PolarDB-X e ela estiver na mesma VPC da instância PolarDB-X, adicione o endereço ip privado da instância ECS a um novo grupo de lista de permissões de ip.

    • Se a instância ECS usada para acessar o PolarDB-X estiver em uma VPC diferente da instância PolarDB-X, adicione o endereço ip público da instância ECS a um novo grupo de lista de permissões de ip.

    • Para acessar o PolarDB-X a partir de um ambiente on-premises, adicione o endereço ip público do seu ambiente a um novo grupo de lista de permissões de ip.

      Para obter o endereço ip público do seu ambiente on-premises, execute uma das etapas a seguir:

      • Sistemas operacionais Linux: Abra o terminal, insira o comando curl ifconfig.me e pressione Enter.

      • Windows: Abra o Prompt de Comando, insira o comando curl ip.me e pressione Enter.

      • macOS: Abra o Terminal, insira o comando curl ifconfig.me e pressione Enter.

      Se sua rede local estiver atrás de um proxy, o endereço ip obtido pode não ser o seu endereço ip público real. Adicione o intervalo de endereços ip 0.0.0.0/0 à lista de permissões da instância PolarDB-X. Após conectar-se com sucesso à instância, execute o comando SHOW PROCESSLIST; para obter seu endereço ip público real e adicione-o à lista de permissões da instância. Em seguida, remova o intervalo de endereços ip 0.0.0.0/0 da lista de permissões.

      39158 | aurora              | 100.104.108.247:39236 | information_schema | Sleep  |          47 |              | NULL
                                          Actual public IP address
      268459868 | polardb_mysql_account | 47.94.74.xxx:39160    | NULL               | Query  |           0 | starting     | SHOW PROCESSLIST
    • O intervalo de endereços ip 0.0.0.0/0 permite acesso de todas as origens. Adicionar esse intervalo à lista de permissões de uma instância cria um alto risco de segurança. Não o adicione à lista de permissões, a menos que seja absolutamente necessário.

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.

  1. 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.

  2. Na caixa de diálogo, insira a Database Account e a Database Password da instância PolarDB-X e clique em Search.

    Nota
    • No 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.

  3. 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

Nota

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.

  1. Instale o MySQL Workbench. Para o link oficial de download, consulte a página de download do MySQL Workbench.

  2. Abra o MySQL Workbench e escolha Database > Connect to Database.

  3. Insira as informações de conexão e clique em OK.

    Parâmetro

    Descrição

    Exemplo

    Hostname

    O endpoint do banco de dados.

    pxc-xxx.polarx.rds.aliyuncs.com

    Port

    Número da porta correspondente ao endpoint do banco de dados.

    Nota

    A porta padrão é 3306.

    3306

    Username

    A conta do banco de dados.

    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

O endpoint do banco de dados.

pxc-xxx.polarx.rds.aliyuncs.com

-P

Número da porta correspondente ao endpoint do banco de dados.

Nota
  • A porta padrão é 3306.

  • Ao usar a porta padrão, omita este parâmetro.

3306

-u

A conta do banco de dados.

polardb_x_user

-p

Senha da conta do banco de dados.

Nota

Este parâmetro é obrigatório.

  • Sem a especificação deste parâmetro, o sistema solicitará novamente a senha no prompt Enter password.

  • Ao especificar este parâmetro, não deixe espaço entre -p e a senha do banco de dados.

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.

  1. 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>
  2. 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.

  1. Instale a biblioteca PyMySQL. Caso não esteja instalada, execute o seguinte comando:

    pip3 install PyMySQL
  2. 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.

  1. Instale o driver go-sql-driver/mysql executando o comando abaixo:

    go get -u github.com/go-sql-driver/mysql
  2. 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)
        }
    }
    

Perguntas frequentes

O ECS não consegue se conectar a uma instância **PolarDB-X**

Siga estas etapas para solucionar o problema:

  1. Verifique se a instância PolarDB-X está no estado Running.

  2. Confira o endpoint e a porta do banco de dados e a conta e senha.

  3. Investigue fatores de rede executando ping <database endpoint> ou telnet <database endpoint> <port> em uma instância ECS para testar a conectividade de rede.

  4. Caso esteja usando uma Internal Network:

    1. Verifique se a instância ECS e a instância PolarDB-X estão na mesma VPC. Caso contrário, não será possível usar a Internal Network. Utilize um dos métodos a seguir para colocar as instâncias ECS e PolarDB-X na mesma VPC:

      • Altere a VPC da instância ECS.

      • Se a instância PolarDB-X usar a VPC padrão, altere a VPC da instância PolarDB-X.

      • Use a Cloud Enterprise Network (CEN) para habilitar a comunicação entre VPCs. Para mais informações, consulte Conectar VPCs na mesma região.

    2. Verifique se o endereço ip privado ou o bloco CIDR da instância ECS foi adicionado à lista de permissões da instância PolarDB-X. Para mais informações, consulte Configurar uma lista de permissões da instância.

  5. Ao utilizar uma Internet, verifique se o endereço ip público da instância ECS foi adicionado à lista de permissões da instância PolarDB-X. Para mais informações, consulte Configurar uma lista de permissões da instância.

Nota

Não é possível usar uma Internal Network para conectar-se a uma instância PolarDB-X a partir de um host virtual ou de uma instância do Simple Application Server.

Não é possível conectar-se a uma instância **PolarDB-X** a partir de um ambiente local

Siga estas etapas para solucionar o problema:

  1. Verifique se a instância PolarDB-X está no estado Running.

  2. Confira o endpoint e a porta do banco de dados e a conta e senha.

    Nota

    Use uma Internet para conectar-se a partir de um ambiente on-premises. Uma Internal Network só pode ser usada quando o cliente e a instância PolarDB-X estão na mesma VPC.

  3. Para verificar problemas de rede, execute ping <database endpoint> ou telnet <database endpoint> <port> no seu ambiente local para testar a conectividade de rede.

  4. Verifique se o endereço ip público ou o bloco CIDR do seu ambiente on-premises foi adicionado à lista de permissões da instância PolarDB-X. Para mais informações, consulte Configurar uma lista de permissões da instância.

    Para obter o endereço ip público do seu ambiente on-premises, execute uma das etapas a seguir:

    • Sistemas operacionais Linux: Abra o terminal, insira o comando curl ifconfig.me e pressione Enter.

    • Windows: Abra o Prompt de Comando, insira o comando curl ip.me e pressione Enter.

    • macOS: Abra o Terminal, insira o comando curl ifconfig.me e pressione Enter.

    Se sua rede local estiver atrás de um proxy, o endereço ip obtido pode não ser o seu endereço ip público real. Adicione o intervalo de endereços ip 0.0.0.0/0 à lista de permissões da instância PolarDB-X. Após conectar-se com sucesso à instância, execute o comando SHOW PROCESSLIST; para obter seu endereço ip público real e adicione-o à lista de permissões da instância. Em seguida, remova o intervalo de endereços ip 0.0.0.0/0 da lista de permissões.

    39158 | aurora              | 100.104.108.247:39236 | information_schema | Sleep  |          47 |              | NULL
                                        Actual public IP address
    268459868 | polardb_mysql_account | 47.94.74.xxx:39160    | NULL               | Query  |           0 | starting     | SHOW PROCESSLIST

Não é possível conectar-se a uma instância **PolarDB-X**, e você recebe o erro: Access denied for user 'xxx'@'xxx' (using password: YES)

Uma mensagem de erro como "Access denied for user 'xxx'@'xxx' (using password: YES)" indica conta ou senha incorretas. Verifique suas credenciais. Acesse o console do PolarDB for Distributed e escolha Configuration and Management > Accounts para gerenciar sua conta e senha do banco de dados.

Não é possível conectar-se a uma instância PolarDB-X: erro 'Unknown MySQL server host 'xxx''

Esse erro indica que o endpoint do banco de dados está incorreto. Certifique-se de que o endpoint esteja correto e siga o formato pxc-xxx.polarx.rds.aliyuncs.com. Acesse o console do PolarDB for Distributed e encontre o endpoint do banco de dados na seção Basic Information > Connection Information.

Não é possível conectar-se a uma instânciaPolarDB-X, com o erro: Can't connect to MySQL server on 'xxx' ou Connection timed out

Isso pode ocorrer se o ip público do seu ambiente não tiver sido adicionado à lista de permissões da instância PolarDB-X ou se a entrada na lista de permissões estiver incorreta.

Para obter o endereço ip público do seu ambiente on-premises, execute uma das etapas a seguir:

  • Sistemas operacionais Linux: Abra o terminal, insira o comando curl ifconfig.me e pressione Enter.

  • Windows: Abra o Prompt de Comando, insira o comando curl ip.me e pressione Enter.

  • macOS: Abra o Terminal, insira o comando curl ifconfig.me e pressione Enter.

Se sua rede local estiver atrás de um proxy, o endereço ip obtido pode não ser o seu endereço ip público real. Adicione o intervalo de endereços ip 0.0.0.0/0 à lista de permissões da instância PolarDB-X. Após conectar-se com sucesso à instância, execute o comando SHOW PROCESSLIST; para obter seu endereço ip público real e adicione-o à lista de permissões da instância. Em seguida, remova o intervalo de endereços ip 0.0.0.0/0 da lista de permissões.

39158 | aurora              | 100.104.108.247:39236 | information_schema | Sleep  |          47 |              | NULL
                                    Actual public IP address
268459868 | polardb_mysql_account | 47.94.74.xxx:39160    | NULL               | Query  |           0 | starting     | SHOW PROCESSLIST

Melhores práticas para timeout de banco de dados

Se sua aplicação utiliza um framework comum de Object-Relational Mapping (ORM), como Spring Boot, MyBatis ou um driver JDBC, o framework frequentemente permite definir timeouts no lado do cliente para consultas SQL em várias camadas, como transações, instruções SQL e I/O de rede. Exemplos incluem transaction_timeout do Spring, statement_timeout do MyBatis e query_timeout do driver JDBC do MySQL.

Essencialmente, a maioria desses mecanismos de timeout no lado do cliente precisa executar uma instrução Kill do banco de dados para interromper consultas. Em cenários de banco de dados distribuído, instruções Kill têm alto custo de execução, e a execução frequente consome uma quantidade significativa de recursos do sistema de banco de dados. Portanto, não recomendamos o uso extensivo desses mecanismos de timeout.

Como melhor prática, sua aplicação deve usar diretamente o parâmetro socket_timeout (timeout de soquete de rede) na URL JDBC para especificar o timeout de execução de SQL. Isso ocorre porque o parâmetro depende do próprio mecanismo de timeout do protocolo tcp, e uma instrução Kill não é acionada quando ocorre um timeout. Por exemplo:

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
  <property name="url" value="jdbc:mysql://pxc-*****.public.polarx.rds.aliyuncs.com:3306/doc_test?socketTimeout=60000" />
  ...
  <property name="asyncInit" value="true" />
</bean>