gpt4 book ai didi

mysql - 通过 ssl 与 vb.net 进行远程 mysql 连接

转载 作者:行者123 更新时间:2023-11-29 16:35:37 31 4
gpt4 key购买 nike

我正在使用 MySQL Workbench 来访问远程数据库。目前正在运行: MySQL workbench screenshot

现在我尝试使用 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() 行上收到以下错误:

:“使用方法“caching_sha2_password”对用户“me”的主机“127.0.0.1”进行身份验证失败,并显示消息:用户“me”@“localhost”的访问被拒绝(使用密码:YES)”

我想这与“caching_sha2_password”有关,因为在mysql工作台-->用户和权限-->我中,身份验证类型设置为标准。

编辑

我已经更改了这些行,现在可以工作了:)

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;")

两个小问题:

  1. 我使用哪个端口号有关系吗?我选择了 3305,但是我可以选择随机数吗?
  2. 我必须设置“ssl mode = none”,这是否存在安全风险?

谢谢

最佳答案

您的连接字符串指向端口 3306,但您将值“0”传递给 ForwardedPortLocal 构造函数;这允许系统选择一个随机端口。

我相信你应该将你的构造函数更改为:

portFwld = New ForwardedPortLocal("127.0.0.1", 3306, "127.0.0.1", 3306)

即显式设置 boundPort 参数(第二个)与您在连接字符串中传递的端口值相同。

当然,如果使用 3306 本地端口(例如,如果您在默认端口上本地运行 MySQL),则此操作将不起作用;您应该选择另一个端口,并在 porrFwld 构造函数和连接字符串中使用相同的值。远程端口应为 3306(对于标准 MySQL 安装)。

关于mysql - 通过 ssl 与 vb.net 进行远程 mysql 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53616143/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com