Cette rubrique explique comment se connecter à une instance cible via le protocole MySQL après avoir activé Secure Access Proxy.
Prérequis
Secure Access Proxy est activé pour l'instance. Pour plus d'informations, consultez la rubrique Activer Secure Access Proxy.
Vous disposez des permissions nécessaires pour accéder à l'instance en utilisant les endpoints de proxy. Pour plus d'informations, consultez la rubrique Demander des permissions pour accéder à une instance de base de données via des endpoints de proxy.
Remarques sur l'utilisation
Pour une instance en mode Security Collaboration, les connexions établies via Secure Access Proxy sont soumises à des règles de sécurité. Ces règles limitent le nombre de lignes qu'une requête peut renvoyer, avec un maximum configurable de 100 000 lignes.
Pour contourner les règles de sécurité, connectez-vous à la base de données en utilisant l'endpoint fourni dans la console de base de données, ou contactez le support technique DMS pour évaluer votre cas d'utilisation.
Pour les instances qui ne sont pas en mode Security Collaboration, vous ne pouvez pas personnaliser le nombre maximal de lignes renvoyées par requête. La limite par défaut est de 3 000 lignes.
Limitations
Le délai d'inactivité de votre client MySQL ne peut pas dépasser 900 secondes.
Si vous utilisez un pool de connexions, l'intervalle de maintien de la connexion (keep-alive) ne peut pas dépasser 900 secondes.
Nous vous recommandons d'utiliser un pool de connexions et de définir l'intervalle de maintien de la connexion à 750 secondes.
Exemples de connexion
Vous pouvez vous connecter à une instance cible disposant de Secure Access Proxy activé en utilisant l'interface CLI MySQL, un client SQL ou du code programmatique.
Utiliser l'interface CLI MySQL
Utilisez le format suivant :
mysql -h<host> -P<port> -u<user_name> -p<password> <database> -e '<sql_statements>'
Paramètres :
|
Paramètre |
Description |
|
host |
L'endpoint de proxy pour l'instance cible. Vous pouvez le trouver sur la page Secure Access Proxy, répertorié comme adresse de protocole MySQL pour l'endpoint de proxy interne ou public. |
|
port |
Le port de l'instance cible, par exemple 3306. Ce port fait partie de l'adresse de protocole MySQL affichée sur la page Secure Access Proxy. |
|
user_name |
Votre ID AccessKey. DMS attribue cet ID après autorisation. Vous pouvez le trouver dans la liste des utilisateurs autorisés sur la page Secure Access Proxy. |
|
password |
Votre secret AccessKey. DMS attribue ce secret après autorisation. Vous pouvez le trouver dans la liste des utilisateurs autorisés sur la page Secure Access Proxy. |
|
database |
Le nom de la base de données dans l'instance cible. |
|
sql_statements |
La commande SQL à exécuter, telle que SHOW DATABASES. |
Exemple :
mysql -hdpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com -P3306 -uYOUR_ACCESS_KEY_ID -pYOUR_ACCESS_KEY_SECRET Schema -e 'SHOW DATABASES'
Utiliser du code programmatique
L'exemple Python utilise Python 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();Utiliser un client SQL
Cet exemple utilise Navicat. Configurez les champs suivants :
Host : l'endpoint de proxy de l'instance cible.
Port : le port de l'instance cible.
User name : votre ID AccessKey.
Password : votre secret AccessKey.