Я использую MySQL для доступа к удаленной базе данных.В настоящее время это работает: Скриншот рабочего места MySQL
Теперь я попытался получить доступ к той же базе данных с Visual Studio 2017, vb.net.Это то, что у меня есть:
Dim connectionInfo As PasswordConnectionInfo
Dim client As SshClient
Dim portFwld As ForwardedPortLocal
connectionInfo = New PasswordConnectionInfo("ipaddress", 22, "me", "password1") With {
.Timeout = TimeSpan.FromSeconds(30)
}
client = New SshClient(connectionInfo)
client.Connect()
If client.IsConnected Then
MsgBox("SSH")
Else
MsgBox("Wrong")
End If
portFwld = New ForwardedPortLocal("127.0.0.1", 0, "127.0.0.1", 3306)
client.AddForwardedPort(portFwld)
portFwld.Start()
MsgBox("Started")
conn = New MySqlConnection("server = 127.0.0.1; port = 3306; uid = 'me'; password = 'password'; database='xxx'")
MsgBox(conn.ConnectionString)
conn.Open()
К сожалению, я получаю следующую ошибку в строке conn.Open ():
: 'Аутентификация на хосте' 127.0.0.1 'дляпользователь 'me', использующий метод 'caching_sha2_password', завершился ошибкой с сообщением: доступ запрещен для пользователя 'me' @ 'localhost' (используется пароль: YES) '
Я полагаю, что он как-то связан с' caching_sha2_password ', потому чтов mysql workbench -> Users and Privileges -> me, тип аутентификации установлен на Standard.
Edit
Я изменил эти строки, и теперь он работает:)
portFwld = New ForwardedPortLocal("127.0.0.1", 3305, "127.0.0.1", 3306)
(...)
conn = New MySqlConnection("server = 127.0.0.1; port = 3305; uid = 'me'; password = 'password'; database='xxx'; ssl mode = none;")
Два небольших дополнительных вопроса:
- Имеет ли значение, какой номер порта я использую?Я выбрал 3305, но могу ли я выбрать случайные числа?
- Я должен был поставить 'ssl mode = none', это угроза безопасности?
Спасибо