Conecte una aplicación en C# a LindormTable mediante la biblioteca MySQL.Data y la sintaxis SQL de tabla ancha.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
LindormTable versión 2.6.2 o posterior. Para comprobar o actualizar su versión, consulte Release notes of LindormTable y Upgrade the minor engine version of a Lindorm instance
La función de compatibilidad con MySQL habilitada en su instancia de Lindorm. Consulte Enable the MySQL compatibility feature
Su dirección IP de cliente agregada a la lista de permitidos de la instancia. Consulte Configure a whitelist
Configuración de un proyecto .NET
Ejecute los comandos a continuación para crear un proyecto y agregar la dependencia MySQL.Data:
dotnet new console --framework net7.0
dotnet add package MySql.Data -v 8.0.11
Si no ha instalado .NET 7.0, descárguelo desde el sitio web oficial de .NET.
Conexión a LindormTable
Paso 1: Configurar la cadena de conexión
Construya una cadena de conexión con los parámetros a continuación:
string connStr = "server=<endpoint>;UID=<username>;database=<database>;port=33060;password=<password>";
Reemplace los marcadores de posición con sus valores reales:
|
Parámetro |
Descripción |
|
|
El endpoint compatible con MySQL para LindormTable. Para obtener el endpoint, consulte View endpoints. Use la dirección VPC al conectarse desde una instancia ECS o la dirección Internet al conectarse por la red pública. |
|
|
Su nombre de usuario de LindormTable. Para restablecer una contraseña olvidada, consulte Change the user password. |
|
|
Su contraseña de LindormTable. |
|
|
La base de datos a la que se conectará. El nombre predeterminado de la base de datos es |
|
|
Valor fijo: |
Para aplicaciones alojadas en ECS, use una conexión de Virtual Private Cloud (VPC) para reducir la latencia de red y mejorar la seguridad. Si necesita conectarse por la red pública, habilite primero el endpoint público: en la consola, vaya a Database Connections > Wide Table Engine y haga clic en Enable Public Endpoint.
Paso 2: Abrir una conexión y ejecutar una consulta
El ejemplo a continuación usa MySqlConnection para abrir una conexión, MySqlCommand para definir una consulta SQL y MySqlDataReader para iterar sobre los resultados.
MySqlConnection conn = new MySqlConnection(connStr);
try
{
Console.WriteLine("Connecting to MySQL...");
conn.Open();
string sql = "show databases;";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Console.WriteLine(rdr[0]);
}
rdr.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
conn.Close();
Console.WriteLine("Done.");
Ejemplo completo
A continuación se muestra un ejemplo completo y ejecutable que se conecta a LindormTable y enumera todas las bases de datos.
Reemplace <endpoint>, <username> y <password> con sus valores reales antes de ejecutarlo.
using System;
using MySql.Data.MySqlClient;
namespace connectLindorm
{
class Program
{
static void Main(string[] args)
{
// server: MySQL-compatible endpoint for LindormTable
// UID: your LindormTable username
// database: the database to connect to
// port: fixed to 33060 for the MySQL protocol
// password: your LindormTable password
string connStr = "server=<endpoint>;UID=<username>;database=default;port=33060;password=<password>";
MySqlConnection conn = new MySqlConnection(connStr);
try
{
Console.WriteLine("Connecting to MySQL...");
conn.Open();
string sql = "show databases";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Console.WriteLine(rdr[0]);
}
rdr.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
conn.Close();
Console.WriteLine("Done.");
}
}
}
Si la instancia contiene únicamente la base de datos default, la salida es:
Connecting to MySQL...
default
information_schema
Done.
Pasos siguientes
Para gestionar bases de datos y tablas, use la sintaxis SQL de tabla ancha mediante la misma conexión.
En entornos de producción, pase la cadena de conexión mediante variables de entorno en lugar de codificar las credenciales directamente en el código fuente.