gpt4 book ai didi

mysql - 无法连接到 MySQL - 无法连接到任何指定的 mysql 主机 vb.net

转载 作者:行者123 更新时间:2023-11-30 22:43:02 25 4
gpt4 key购买 nike

我已经为我的 vb 项目创建了一个安装程序。它试图将它安装到我的工作 PC 上并且成功了。然后我将它安装到另一台 PC 上。它已成功安装,但当我尝试运行它时,系统无法连接到我的数据库。它给我一个错误:

Can't connect to MySQL -unable to connect to any of the specified mysql hosts

我只创建了一个安装程序,里面有 .exe 和数据库,没有别的。

我是否遗漏了一些要求或额外的应用程序,而这些要求或附加应用程序需要使用 mysql 数据库vb.net 应用程序 在不同的 PC 上顺利运行?这是什么?

导致问题的原因是什么?

提前致谢!

最佳答案

正如我们在上面的评论中所讨论的,使用“本地主机”连接到您的 MySQL 服务器仅适用于安装服务器的机器。要从其他计算机连接到您的服务器,请允许用户输入您服务器的路径并将该信息保存在 MySQL 数据库之外,这样用户就不必每次都输入。

首先,如果您还没有属性文件,请通过在项目的 bin 文件夹中保存一个 .txt 文件来创建一个。 (对我来说,这是 Documents\Visual Studio 2013\Projects[PROJECT NAME][PROJECT NAME]\bin\Release - 路径可能与您相同或相似。)如果这就是您要存储的全部内容,只需键入 localhost 并保存为 properties.txt。如果您仍在调试,请将文件也复制到 bin 的 Debug 文件夹中。

Imports System.IO

Dim filePath as String = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) & "\properties.txt"
Dim serverPath as String
Using fReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(filePath)
fReader.TextFieldType = FileIO.FieldType.Delimited
fReader.SetDelimiters(",")
Dim currentRow As String()
While Not fReader.EndOfData
Try
currentRow = fReader.ReadFields()
'If you have other values stored here, check that length of currentRow matches the number of properties you expect to import and import anything else you have saved here
serverPath = currentRow(0) 'or whichever place you save it in your file
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
'File is not formatted as expected
End Try
End While
End Using

将上述代码放在项目中的适当位置,以便它在您尝试连接到数据库之前执行一次。然后使用您现有的代码连接到您的数据库,在此代码中将“localhost”替换为“serverPath”(当然,连接到您的 SQL 命令中):

Dim oldPath As String = serverPath
Do
Try
'Your existing code with the server path passed as a variable here
If serverPath <> oldPath Then
'The path that worked isn't the one that was saved. Update file
Using file As FileStream
file.Open(filePath)
file.Write(serverPath) 'Update to meet your needs if you have other variables stored here.
file.Close()
End Using
End If
Exit Do
Catch ex As MySQLException
'The path saved in your file is not working. Get a new one and try again.
serverPath = InputBox("Please enter the directory to the database server:", "Unable To Locate Server")
If serverPath = "" Then
'User either clicked Cancel or left field blank
Exit Sub 'Or whatever else you want to do when the user aborts
End If
End Try
Loop

试一试。您可以查看其他读取和写入文件的方法,但这应该可以满足您的所有需求。

关于mysql - 无法连接到 MySQL - 无法连接到任何指定的 mysql 主机 vb.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30571786/

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