• 5564阅读
  • 2回复

QT应用程序从windows访问linux mysql数据库时 编译的驱动版本不同 是否可以访问成功?(已解决) [复制链接]

上一主题 下一主题
离线senfrans
 

只看楼主 倒序阅读 楼主  发表于: 2010-03-15
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
有人遇到过这样子的情况吗?

QT应用程序访问mysql数据库时要自己编译mysql驱动

现在要从windows上访问linux下的mysql数据库,但是不知道linux的mysql版本号

于是在windows上就要编译mysql驱动,在网上找了一个非安装版的mysql 编译好了驱动。

如果编译驱动和被访问的linux mysql数据库的版本不同  这样能访问成功吗?


现在出现的错误

can not open database
reason:database error
HOST XXXXX is not allowed to connect to this MYSQL server!

恳请哪位指教一下


//////////////////////////////////////

在数据库里面 授权一个用户 远程访问该数据库

grant  all privileges on *.*  user@'192.168.1.2'  identified by '123456';


具体参考:

如果你想连接你的mysql的时候发生这个错误:

ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server

解决方法:
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
[ 此帖被senfrans在2010-03-15 16:56重新编辑 ]
离线senfrans

只看该作者 1楼 发表于: 2010-03-15
我用的是VS2008+Qt4.4.mysql驱动也编译成功。在windows上建立的mysql数据库也可以访问成功, 但是访问linux 下面的数据库时 出现了该错误。
所以我怀疑  是不是驱动的问题?

请哪位大哥指点指点啊
离线hehui

只看该作者 2楼 发表于: 2011-04-09
同一个大版本的通常是没有问题的~
某些版本Linux下的防火墙会拦截访问~
快速回复
限100 字节
 
上一个 下一个