提问人:Juan Pérez 提问时间:8/10/2023 最后编辑:egleaseJuan Pérez 更新时间:8/11/2023 访问量:35
MySQL查询在工作台上工作,但在.NET代码中不起作用
MySQL query work on workbench but not in .NET code
问:
有问题,
我有一段用 vb.net 编写的代码,至少到目前为止可以完美运行。我有几台 Windows 和 Linux 服务器,它可以在所有服务器上工作。今天我安装了一台装有 CentOS 8 和 MariaDB 的新服务器。如果我从工作台执行查询,它可以完美地工作,如果我通过命令行通过 ssh 执行它,它也可以工作。但是如果我在我的代码中运行它,它不会返回任何结果,也就是说,它返回一个空的数据表,它不会抛出任何错误,但我没有得到必要的记录。
查询仅列出以“app_”开头的可用数据库
Dim dt As New System.Data.DataTable
Try
Dim cmm As String = "SELECT information_schema.schemata.schema_name FROM information_schema.schemata WHERE information_schema.schemata.schema_name LIKE 'app_%'"
Me.MiAdap = New MySqlDataAdapter(cmm, MiObjCon)
Me.MiAdap.Fill(dt)
Return dt
Catch mySqlException1 As MySqlException
Throw New ICB.DataBase.DBException(mySqlException1, CLng(mySqlException1.Number))
End Try
有什么想法吗?
如果我从工作台执行查询,它可以完美地工作,如果我通过命令行通过 ssh 执行它,它也可以工作。但是如果我在我的代码中运行它,它不会返回任何结果,也就是说,它返回一个空的数据表
答:
-1赞
Joel Coehoorn
8/11/2023
#1
由于您没有分享任何错误消息,因此我们只能猜测这一点。但跳到我面前的关键词是:
安装了新服务器
这导致了错误的三个可能来源:
- MySQL/MariaDB有自己的内部防火墙,默认情况下只允许来自localhost的连接。如果您在本地计算机上运行 Workbench,或者已经通过 ssh 进行连接,则这些连接来自 localhost,并将通过防火墙。
- VB.Net 代码中的连接字符串不正确。
- 新服务器尚未加载任何数据,或者架构或表名称有误
但是,对于 1 和 2,我预计会出现更多的错误,而不仅仅是空结果,而对于 3,我希望 Workbench 或 SSH 的行为会有所不同。
评论
0赞
Juan Pérez
8/11/2023
是的,安装一个新服务器,但所有连接都是远程的,只有 ssh 是本地的,但 workbench connect 是远程的。我加载了一个备份,并且有 6 个数据库,如果在工作台上运行查询,但在我的代码中运行返回空数据表,则会列出这些数据库。没有错误代码,因为没有抛出任何错误,连接正常,查询正常,只返回一个空的数据表......这很奇怪的问候!
评论