2010-11-01 6 views
1

Tout d'abord; J'ai été un lecteur avide de SO pour un bon moment maintenant. C'est ma première question. Je suis surpris que ça va être lié à des bases de données! Notez que je pense que le problème pourrait être spécifique à ma configuration, donc je ne suis pas sûr que vous puissiez m'aider, mais j'ai pensé que je pourrais essayer!Impossible de se connecter à la base de données MySQL avec C# et Mono

Problème:

Alors, je suis complètement nouvelle aux bases de données. J'utilise C# avec Mono (v2.6.7) et MonoDevelop (v2.4) pour Mac (OS X 10.6.4). Principalement en raison de la configuration simple, je veux utiliser XAMPP pour jouer. Maintenant, je souhaite me connecter à ma base de données de test en utilisant MySQL .NET Connector (v6.3.5), comme recommended by Mono.

J'ai suivi le recommandé sur la page de Mono (j'ai également examiné le installation guide de MySQL) et j'ai installé les fichiers nécessaires au GAC. J'ai ajouté toutes les références nécessaires à mon projet et mon code se compile bien. Je n'arrive toujours pas à me connecter à ma base de données XAMPP via le code.

La chose intéressante est que je suis capable d'accéder à la base de données par le terminal (./mysql -u tester -p et faire use test) sans aucun problème. En outre, mysql_client_test fonctionne également bien et tout ce que je peux penser indique que le serveur est opérationnel.

Voici mon code:

string connectionString = "Server=localhost;User ID=tester;Password=******;Database=test;Port=3306;Pooling=false"; 
MySqlConnection connection = new MySqlConnection(connectionString); 

try 
{ 
    Console.WriteLine("Trying to open database connection ..."); 
    connection.Open(); 
} 
catch(Exception ex) 
{ 
    Console.WriteLine(ex.ToString()); 
} 

connection.Close(); 

est ici l'exception que je reçois quand je tente de se connecter à partir du code:

Essayer d'ouvrir la connexion de base de données ... MySql.Data.MySqlClient.MySqlException : Impossible de se connecter à l'un des hôtes MySQL spécifiés. ---> System.Net.Sockets.SocketException: Connexion refusée à System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00000] dans: 0 à System.Net.Sockets.Socket + Worker .Connectez() [0x00000] dans: 0 --- Fin de trace de pile d'exception interne --- à MySql.Data.MySqlClient.NativeDriver.Open() [0x00000] dans: 0 à MySql.Data.MySqlClient. Driver.Open() [0x00000] dans: 0 à MySql.Data.MySqlClient.Driver.Create (paramètres MySql.Data.MySqlClient.MySqlConnectionStringBuilder) [0x00000] dans: 0 à MySql.Data.MySqlClient.MySqlConnection.Open () [0x00000] dans: 0

Toute entrée serait grandement appre cité. Aussi, si vous avez des suggestions sur une configuration plus facile pour jouer avec MySQL - ce serait grandement apprécié aussi! Merci d'avance!

Edits: (informations demandées par Phil Hunt)

netstat -na | grep LIST 

tcp4  0  0 *.21     *.*     LISTEN 
tcp46  0  0 *.80     *.*     LISTEN 
tcp4  0  0 *.63912    *.*     LISTEN 
tcp4  0  0 127.0.0.1.26164  *.*     LISTEN 
tcp4  0  0 *.17500    *.*     LISTEN 
tcp4  0  0 127.0.0.1.631   *.*     LISTEN 
tcp6  0  0 ::1.631    *.*     LISTEN 

Répondre

1

trouvé le problème!

C'était fondamentalement un problème avec comment XAMPP met en place le serveur de MySQL. Pour une raison quelconque, il y avait deux lignes, skip-networking dans .../XAMPP/xamppfiles/etc/my.cnf. Voici un extrait du fichier, montrant les lignes dont je parle. C'est un "bug" avec la version Mac, je suppose. Commenter les deux lignes skip-networking résout le problème!

De my.cnf:

# commented in by xampp security 
#skip-networking 
#skip-networking <- This line was left uncommented by default, for some reason. 
server-id = 1 
+0

Ne pas oublier d'accepter votre réponse comme correcte – abatishchev

+0

Jepp! Je vais le faire, mais je dois attendre 13 heures de plus!^^ – Leif

Questions connexes