【发布时间】:2016-02-24 01:33:32
【问题描述】:
我正在尝试从 Delphi 7 应用程序连接到我在网络上的 mysql 数据库服务器(5.6 版)...
使用 Mysql Workbench,它工作正常,我可以使用我的测试用户(在 Delphi 7 中不工作的同一用户)运行选择查询...
在使用 TZEosConn 7.1.4-stable 的 Delphi 中,为 DB 服务器键入正确的主机名,正确的用户名和密码...(参数 loginprompt = false) 当我将“已连接”更改为 true 时,一切正常...
但是当我试图执行一个简单的查询时:
zq.SQL.Text:='SELECT field FROM database.TABLE where id='+inttostr(x)+';'; zq.ExecSQL;
其中zq是TZQuery,x是整数,
我收到此错误:**EZSQLException .. SELECT Command denied for @my_internet_hostname **
当我登录 MySQL Workbench 时,我看到同一个用户使用通配符会话,比如 mydbuser@% ,同样的选择工作正常
所以我认为,问题出在 ZEOS 组件中,它会自动添加我的互联网提供商主机名...
在 mysql 服务器上,我允许使用通配符主机名(简单地说 - '%' - 所以所有主机都可以访问我的 MYSql DB)
谁能给我建议,我的 ZEOS 组件有什么问题???
PS:对不起我的英文和格式
【问题讨论】:
-
你可以在这里看看我的回答。不要只阅读“表格许可”部分。另一部分与那个无关。permission。也许有帮助。
-
@moskito-x 感谢您的回答,我认为表权限没有问题,因为来自我的本地 PC(相同的主机名 IP 地址,但不同的应用程序)-在 mysql 工作台上工作相同,不幸的是,Zeos组件在Delphi中无法使用同样的东西......问题是,正如我所说,zeos组件在用户名之后添加“错误”主机名 - 即user@11-22-33-44.provider.com和正确的用户名必须是 user@%
-
没有 user@% 。你总能得到连接来自的主机。
-
这是来自 MySQL WorkBench 的图片,一切正常:i67.tinypic.com/11l0bkh.png
-
请记住:您的连接正常。只有用户没有SELECT命令的权限