0
votes

Connectez et insérez des données de mon ordinateur à la table de base de données MySQL du serveur à l'aide de C # .NET

Je souhaite me connecter à MySql DB (cpanel) d'un serveur. Bien qu'il n'y ait pas d'erreur à chaque fois que je reçois un message pour Messegebox: impossible de me connecter à l'un des hôtes MySql spécifiés.

 type de sortie

using MySql.Data.MySqlClient;
        connString = "SERVER = ********;PORT=3306;DATABASE=********;UID=**********;PASSWORD=*********";
        try
        {
            conn = new MySqlConnection();
            conn.ConnectionString = connString;
            conn.Open();
            MessageBox.Show("Server is online");

        }
        catch (MySql.Data.MySqlClient.MySqlException ex)
        { MessageBox.Show(ex.Message);}


0 commentaires

3 Réponses :


0
votes

Je chercherais à utiliser ConnectionStringBuilder. Notez également l'utilisation de «using». Cela garantira que les ressources seront supprimées une fois terminées avec.

private MySqlConnectionStringBuilder sConnString = new MySqlConnectionStringBuilder
{
    Server = "",
    UserID = "",
    Password = "",
    Database = ""
};

private void Test(){

    // open connection to db
    using (MySqlConnection conn = new MySqlConnection(sConnString.ToString()))
    {
        using (MySqlCommand cmd = conn.CreateCommand())
        {
            try
            {
                conn.Open();
                cmd.CommandText = "SELECT * FROM foo WHERE OrderID = @OrderID";

                // Add any params
                cmd.Parameters.AddWithValue("@OrderID", "1111");
                cmd.Prepare();
                cmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
                return;
            }
        }
    }
}


4 commentaires

en utilisant (MySqlConnection conn = new MySqlConnection (sConnString)) ne peut pas convertir en chaîne


impossible de convertir MySql.Data.MySqlClient.MySqlConnectionStringBuilder en String


J'ai mis à jour ma réponse. Avis tostring, méthode sConnstring


Merci d'avoir partagé votre code. Mais je ne comprends pas pourquoi catch (Exception e) {MessageBox.Show (e.ToString ()); revenir; } fonctionne à chaque fois. le serveur ne se connecte pas. Je pense qu'il y a quelque chose qui ne va pas avec le serveur.



0
votes

Si vous essayez de vous connecter à votre serveur MySQL en externe, les connexions externes doivent être activées.

Sachez qu'il s'agit d'une faille de sécurité si vous fournissez votre application à d'autres qui contiennent les informations de la base de données. Pour contourner cela, vous devez créer une API Web.


1 commentaires

Ow. Merci pour votre suggestion. Pouvez-vous me suggérer un didacticiel connexe?



0
votes

La première étape pour vous connecter à votre application à un serveur distant MySql Server est de vérifier s'il autorise les connexions externes, par défaut, l'utilisateur root est verrouillé, pour autoriser local, vous pouvez essayer de vous connecter avec l'utilisateur root en tapant la commande suivante dans MySql:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;
'root': You can change it with your user.
'%': allows all connections, you can limit it typing an IP.

La deuxième étape consiste à vérifier votre connecteur MySql .net

Cheers!


5 commentaires

PRIVILÈGES DE RINÇAGE; Qu'est-ce que c'est ?


Racine. Je vais le remplacer par mon nom d'utilisateur. dois-je remplacer le pass aussi?


# 1045 - Accès refusé pour l'utilisateur 'dragonco' @ 'localhost' (en utilisant le mot de passe: OUI)


Flush: lorsque vous accordez certains privilèges à un utilisateur, l'exécution de la commande flush privileges rechargera les tables d'octroi dans la base de données mysql, permettant aux modifications de prendre effet sans recharger ni redémarrer le service mysql.


Essayez ceci: GRANT ALL ON fooDatabase. * TO fooUser@'1.2.3.4 'IDENTIFIED BY' my_password '; Exemple: support.rackspace.com/how-to /…