查询适用于Windows上的MySQL,但不适用于Ubuntu上的Mysql

时间:2018-06-12 19:01:12

标签: mysql windows vb.net ubuntu-18.04

我有一个应用程序使用datasource函数输出datagridview

上的行
dim query1 as string = "Select * from trades"
Source1.DataSource = GetData(query1)

With Me.DGVTrades
    .DataSource = Source1
End With

当我针对MySQL上托管的windows 10服务器运行该应用程序时,上面的代码可以正常运行并填充datagridview。但是,它对MySQL上托管的ubuntu 18.04服务器无效。

两个操作系统的数据库和MySQL服务器版本(8.0.11)是相同的,因为我使用相同的转储文件在任一服务器上导入数据。

问题:可能导致此问题的原因是什么?

更新:还有另一个查询使用相同的连接字符串,使用上面提到的相同方法填充另一个DGV,这个似乎正在运行。

在与Terry交谈之后,我意识到问题出现在查询中,当我使用MySQL中的工作台运行查询时,它可以在Windows服务器上运行,但不能在Ubuntu服务器上运行

1 个答案:

答案 0 :(得分:1)

我发现的问题是在MySQL表名中,Ubuntu服务器中存在一些区分大小写。我的代码中的查询很多都是用表名中的大写字母写的,这就是为什么它不适用于Ubuntu上的MySQL。然而,Windows上的MySQL似乎对此更加宽容并按原样接受表名。

“表和数据库名称如何存储在磁盘上并在MySQL中使用受lower_case_table_names系统变量的影响.lower_case_table_names可以采用下表中显示的值。此变量不会影响触发器标识符的区分大小写。在Unix上, lower_case_table_names的默认值为0.在Windows上,默认值为1.在macOS上,默认值为2.“ < - 来源 - > https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html