Bonjour,
Je rencontre un problème de connexion pour me connecter à une base SQL depuis l'extérieur.
La base est sur un serveur de type Synology, gérée via phpMyAdmin.
J'utilise le code suivant (merci à la video )
En local pas de problème le message "Successfully Connected to MySQL Database." apparait bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Imports MySql.Data.MySqlClient Public Class Form1 Dim ServerString As String = "Server=xxxxxx.synology.me;Port=3306;User Id=xxxxxx;Password=xxxxxx;DataBase=DataBase" Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim SQLConnection As MySqlConnection = New MySqlConnection SQLConnection.ConnectionString = ServerString Try If SQLConnection.State = ConnectionState.Closed Then SQLConnection.Open() MsgBox("Successfully Connected to MySQL Database.") Else SQLConnection.Close() MsgBox("Connection is closed.") End If Catch ex As Exception MsgBox(ex.ToString) End Try End Sub End Class
Depuis l'extérieur quelque chose me bloque...
J'ai redirigé le port 3306 de ma box vers l' IP fixe de mon serveur.
L'utilisateur est défini en client sur "%" (Tous clients d’après ce que j'ai compris...?), je lui est ajouté également l'adresse du serveur, de la box, l'ip publique du serveur... Rien n'y fait.
L'erreur se produit sur SQLConnection.Open()
Le message d'erreur est le suivant:
MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts. ---> System.Net.Sockets.SocketException (0x80004005): Une tentative de connexion a échoué car le parti connecté n’a pas répondu convenablement au-delà d’une certaine durée ou une connexion établie a échoué car l’hôte de connexion n’a pas répondu xxx.xxx.xxx.xxx:3306
à System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
à MySql.Data.Common.MyNetworkStream.CreateSocketStream(MySqlConnectionStringBuilder settings, IPAddress ip, Boolean unix)
à MySql.Data.Common.MyNetworkStream.CreateStream(MySqlConnectionStringBuilder settings, Boolean unix)
à MySql.Data.Common.StreamCreator.GetStream(MySqlConnectionStringBuilder settings)
à MySql.Data.MySqlClient.NativeDriver.Open()
à MySql.Data.MySqlClient.NativeDriver.Open()
à MySql.Data.MySqlClient.Driver.Open()
à MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
à MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
à MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
à MySql.Data.MySqlClient.MySqlPool.GetConnection()
à MySql.Data.MySqlClient.MySqlConnection.Open()
à WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e) dans C:\Users\xxxxxx\Documents\Visual Studio 2015\Projects\ProjectName\ProjectName\Form1.vb:ligne 13
Je ne comprends pas qui bloque la box, Mabase, phpMyAdmin...?
Partager