Connectez-vous à LindormTable depuis une application Rust via le protocole de compatibilité MySQL et le crate mysql.
Prérequis
Avant de commencer, vérifiez que vous disposez des éléments suivants :
La fonctionnalité de compatibilité MySQL est activée sur votre instance Lindorm. Consultez Activer la fonctionnalité de compatibilité MySQL.
L'adresse IP de votre client figure dans la liste d'autorisation de l'instance. Reportez-vous à Configurer les listes d'autorisation.
Rust est installé sur votre machine. Suivez les instructions de Installer Rust.
Se connecter à LindormTable
Étape 1 : Ajouter la dépendance mysql
Dans votre fichier Cargo.toml, ajoutez le crate mysql sous la section [dependencies] :
[dependencies]
mysql = "*"
La valeur * récupère automatiquement la dernière version disponible.
Étape 2 : Configurer les paramètres de connexion
Construisez les options de connexion à l'aide de OptsBuilder :
let opts = OptsBuilder::new()
.ip_or_hostname(Some("ld-uf6k8yqb741t3****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com"))
.user(Some("user"))
.pass(Some("test"))
.db_name(Some("default"))
.tcp_port(33060);
| Paramètre | Description |
|---|---|
ip_or_hostname |
Endpoint LindormTable pour MySQL. Consultez Afficher les endpoints. |
user |
Nom d'utilisateur. Pour réinitialiser un mot de passe oublié, reportez-vous à Gérer les utilisateurs. |
pass |
Mot de passe du compte. |
db_name |
Nom de la base de données. Valeur par défaut : default. |
tcp_port |
Valeur fixe : 33060. |
Choisir le type d'endpoint approprié
VPC (recommandé pour les applications déployées sur ECS) : Utilisez l'endpoint VPC LindormTable pour MySQL. L'accès via VPC offre une sécurité renforcée et une latence réseau réduite.
Internet (pour les clients locaux ou externes) : Utilisez l'endpoint Internet LindormTable pour MySQL. Pour activer l'accès Internet, accédez à la console Lindorm, puis allez dans Database Connections > Wide Table Engine, et cliquez sur Enable Public Endpoint.
Étape 3 : Établir une connexion et exécuter des requêtes SQL
Créez un pool de connexions, obtenez une connexion active, puis utilisez le langage SQL de LindormTable pour manipuler vos données :
let pool = Pool::new(opts).unwrap();
let mut conn = pool.get_conn().unwrap();
// Create a table
conn.query_drop(
r"create table if not exists user_test(id int, name varchar, age int, primary key(id))"
).expect("Failed to create table");
Sélectionner la méthode d'exécution adaptée
| Méthode | Cas d'utilisation |
|---|---|
query_drop |
Instructions DDL (CREATE, DROP) ou DML ne nécessitant pas de résultat |
exec_drop |
Requêtes DML avec liaison de paramètres (upsert, update, delete) |
query |
Instructions SELECT retournant des lignes de données |
Étape 4 : Compiler et exécuter l'application
cargo build
cargo run
Exemple de code
L'exemple suivant se connecte à LindormTable, crée une table, insère deux lignes, puis interroge l'ensemble des enregistrements.
use mysql::*;
use mysql::prelude::*;
fn main() {
// Configure the endpoint, credentials, database, and port
let opts = OptsBuilder::new()
.ip_or_hostname(Some("ld-xxxx-sql-lindorm.lindorm.rds.aliyuncs.com"))
.user(Some("root"))
.pass(Some("root"))
.db_name(Some("default"))
.tcp_port(33060);
let pool = Pool::new(opts).unwrap();
let mut conn = pool.get_conn().unwrap();
// Create a table
conn.query_drop(
r"create table if not exists user_test(id int, name varchar, age int, primary key(id))"
).expect("Failed to create table");
// Insert data using upsert
conn.exec_drop(
r"upsert into user_test(id,name,age) values(?,?,?)",
(1, "zhangsan", 17)
).expect("Failed to insert data 1");
conn.exec_drop(
r"upsert into user_test(id,name,age) values(?,?,?)",
(2, "lisi", 27)
).expect("Failed to insert data 2");
// Query all rows
let result = conn.query(r"select * from user_test").expect("Failed to select");
for row in result {
let (id, name, age): (i32, String, i32) = from_row(row);
println!("Id: {}, Name: {}, Age: {}", id, name, age);
}
}
Résultat attendu :
Finished dev [unoptimized + debuginfo] target(s) in 0.09s
Running `target/debug/hello_word`
Id: 1, Name: zhangsan, Age: 17
Id: 2, Name: lisi, Age: 27
Étapes suivantes
Afficher les endpoints : Obtenez votre endpoint VPC ou Internet.
Gérer les utilisateurs : Gérez les noms d'utilisateur et les mots de passe LindormTable.
Configurer les listes d'autorisation : Contrôlez les adresses IP autorisées à se connecter à votre instance.