我正在使用 Mac 和并行桌面。在我的 Win7 安装中(并行)我有 pgAdmin 和一个简单的测试数据库和表。
我要做的是使用名为 Qt SQL Browser 的 Qt Creator 附带的示例来连接到该数据库。
由于db位于Parallels内部,我不知道 知道怎么连接。我应该在 Qt SQL Browser 的配置屏幕中输入什么内容才能这样做?
答案 0 :(得分:1)
访问该数据库需要做一些事情。
数据库需要可以在localhost之外访问。
您需要为正确的插件文件夹(或者在exe旁边的相对路径中)构建正确的数据库访问插件。
运行数据库的端口(5432
是postgres的默认端口),需要允许通过该计算机上的防火墙(Win7安装)。
http://windows.microsoft.com/en-us/windows/open-port-windows-firewall#1TC=windows-7
为了让生活更轻松,您还应该通过防火墙对Windows 7计算机进行ping操作。
http://www.sysprobs.com/enable-ping-reply-windows-7
你需要获得Parallels看到另一台计算机的IP地址。 (要查找此信息,请在命令提示符下的Windows 7计算机上键入ipconfig
并查看网卡的地址。它可能类似192.168.1.X
。
如果从Mac上看到计算机,则在键入时应收到回复:
ping 192.168.1.6
假设6是您的Parallels网络驱动程序选择的数字。
所以完成上述所有操作后,数据库位置可能会是:
192.168.1.6
这是您希望放在Hostname:
并确保该端口代表您在设置中使用的端口(修改Port:
以反映此设置,例如5432
)。
包括qt SQL模块。
QT += sql
获取构建的插件并可用于您的构建。
https://www.google.com/search?q=qt+build+postgresql+driver
http://qt-project.org/doc/qt-5/sql-driver.html#qpsql
基本上,您可以找到用于构建它的示例项目或插件项目,然后将其放在可执行文件期望找到它的文件夹中。如果插件是在普通文件夹中构建的,qtmacdeploy
应该有帮助。
当驱动程序正确就位时,应在代码中运行此命令时列出:
qDebug() << QSqlDatabase::drivers();
在Qt 5中看起来,默认情况下会构建和包含更多驱动程序。您可以在qsqlconnectiondialog.cpp
的顶部看到ui.comboDriver->addItems(drivers);
。
http://qt-project.org/doc/qt-5/qsqldatabase.html#drivers
通常将数据库暴露给可通过网络直接访问并不是最佳做法。根据数据库的类型,它不会安全发送并且可以接受攻击。
访问数据库的程序通常使用服务器端服务,例如可以访问数据库的php后端,以及使用一小组命令。数据库只能由服务器上运行的php脚本直接访问,并且php提供数据库的公共接口,具有您需要的安全性。然后,您可以限制登录尝试,只允许特定类型的查询,通常更好的用户管理等。这通常用于MySQL。
https://www.google.com/search?q=database+security+best+practices+postgres
希望有所帮助。