Este tópico descreve como se conectar a uma instância de destino pelo protocolo MySQL após ativar o Secure Access Proxy.
Pré-requisitos
O Secure Access Proxy está ativado para a instância. Para mais informações, consulte Ativar o Secure Access Proxy.
Você tem permissão para acessar a instância usando endpoints de proxy. Para mais informações, consulte Solicitar permissões para acessar uma instância de banco de dados usando endpoints de proxy.
Observações de uso
Para instâncias no modo Security Collaboration, as conexões via Secure Access Proxy seguem regras de segurança. Essas regras limitam o número de linhas retornadas por consulta, com um máximo configurável de 100.000.
Para ignorar as regras de segurança, conecte-se ao banco de dados usando o endpoint fornecido no console do banco de dados ou entre em contato com o suporte técnico do DMS para avaliar seu caso de uso.
Em instâncias fora do modo Security Collaboration, não é possível personalizar o número máximo de linhas retornadas por consulta. O limite padrão é de 3.000 linhas.
Limitações
O tempo limite de ociosidade do cliente MySQL não pode exceder 900 segundos.
Se você usar um pool de conexões, o intervalo de keep-alive não deve ultrapassar 900 segundos.
Recomendamos usar um pool de conexões e defina o intervalo de keep-alive como 750 segundos.
Exemplos de conexão
Conecte-se a uma instância de destino com o Secure Access Proxy ativado usando a CLI do MySQL, um cliente SQL ou código de programa.
Usar a CLI do MySQL
Use o seguinte formato:
mysql -h<host> -P<port> -u<user_name> -p<password> <database> -e '<sql_statements>'
Parâmetros:
|
Parâmetro |
Descrição |
|
host |
Endpoint de proxy da instância de destino. Disponível na página Secure Access Proxy, listado como endereço de protocolo MySQL para o endpoint de proxy interno ou público. |
|
port |
Porta da instância de destino, como 3306. Esta porta faz parte do endereço de protocolo MySQL exibido na página Secure Access Proxy. |
|
user_name |
Seu AccessKey ID. O DMS atribui esse ID após a autorização. Encontre-o na lista de usuários autorizados na página Secure Access Proxy. |
|
password |
Seu AccessKey secret. O DMS atribui esse segredo após a autorização. Encontre-o na lista de usuários autorizados na página Secure Access Proxy. |
|
database |
Nome do banco de dados na instância de destino. |
|
sql_statements |
Comando SQL a ser executado, como SHOW DATABASES. |
Exemplo:
mysql -hdpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com -P3306 -uYOUR_ACCESS_KEY_ID -pYOUR_ACCESS_KEY_SECRET Schema -e 'SHOW DATABASES'
Usar código de programa
O exemplo em Python usa a versão 2.
// dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com:3306 is the proxy endpoint and port of the target instance.
// You can find the endpoint and port in the MySQL protocol address on the Secure Access Proxy page.
// schema is the name of the database in the target instance.
String url = "jdbc:mysql://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com:3306/schema";
Properties properties = new Properties();
// Use your AccessKey ID. You can find it in the authorized user list on the Secure Access Proxy page.
properties.setProperty("user", "YOUR_ACCESS_KEY_ID");
// Use your AccessKey secret. You can find it in the authorized user list on the Secure Access Proxy page.
properties.setProperty("password", "YOUR_ACCESS_KEY_SECRET");
try (Connection connection = DriverManager.getConnection(url, properties)) {
try (Statement statement = connection.createStatement()) {
// Use the execute method to run an SQL statement. This example uses SHOW DATABASES. You can replace it with other SQL statements.
statement.execute("SHOW DATABASES");
ResultSet resultSet = statement.getResultSet();
while (resultSet.next()) {
System.out.println(resultSet.getString(1));
}
}
} catch (Exception e) {
e.printStackTrace();
}
import pymysql
try:
# host: The proxy endpoint of the target instance.
# port: The port of the target instance.
# user: Your AccessKey ID. You can find it in the authorized user list on the Secure Access Proxy page.
# password: Your AccessKey secret. You can find it in the authorized user list on the Secure Access Proxy page.
# database: The name of the database in the target instance.
conn = pymysql.connect(host='dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com', port=3306, user='YOUR_ACCESS_KEY_ID', password="YOUR_ACCESS_KEY_SECRET",database ='schema')
cur = conn.cursor(pymysql.cursors.DictCursor)
# Use the execute method to run an SQL statement. This example uses SHOW DATABASES. You can replace it with other SQL statements.
cur.execute('SHOW DATABASES')
rs = cur.fetchall()
print rs
finally:
cur.close()
conn.close()
var mysql = require('mysql');
var connection = mysql.createConnection({
// host: The proxy endpoint of the target instance.
host : 'dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com',
// user: Your AccessKey ID. You can find it in the authorized user list on the Secure Access Proxy page.
user : 'YOUR_ACCESS_KEY_ID',
// password: Your AccessKey secret. You can find it in the authorized user list on the Secure Access Proxy page.
password : 'YOUR_ACCESS_KEY_SECRET',
// port: The port of the target instance.
port : '3306',
// database: The name of the database in the target instance.
database : 'schema'
});
connection.connect();
// Use the execute method to run an SQL statement. This example uses SHOW DATABASES. You can replace it with other SQL statements.
connection.query('SHOW DATABASES', function(err, result) {
console.log(result);
});
connection.end();
Usar um cliente SQL
Este exemplo usa o Navicat. Configure os seguintes campos:
Host: endpoint de proxy da instância de destino.
Port: porta da instância de destino.
User name: seu AccessKey ID.
Password: seu AccessKey secret.