Connexion Base SQL, Synology, phpMyAdmin, VB.NET
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 https://www.youtube.com/watch?v=jZsTLlFoNuo)
Code:
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 |
En local pas de problème le message "Successfully Connected to MySQL Database." apparait bien.
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:
Citation:
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...?