【问题标题】:pyodbc to MS access connection string; can it use IP address?pyodbc 到 MS 访问连接字符串;它可以使用IP地址吗?
【发布时间】:2017-09-28 03:05:14
【问题描述】:

我编译连接ms access数据库的程序如下:

conn_string = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=C:\folder_name\EVT_LOG.mdb;')

这可以正常工作。

然后我尝试部署到数据库位于客户端并且服务器必须访问它的远程服务器/客户端情况,所以我修改了连接字符串如下:

conn_string = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=\\10.80.112.81\folder_name\EVT_LOG.mdb;')

这个得到了pyodbc.error data source name not found。关于在远程数据库上执行此 pyodbc 的任何想法?

【问题讨论】:

  • 您是否可以通过 Windows 资源管理器中的地址 \\10.80.112.81\folder_name\EVT_LOG.mdb 访问该文件?先检查一下。
  • 是的,我可以从 Windows 资源管理器访问它,但问题不在于脚本,这是因为没有安装 odbc 驱动程序。感谢您的回答。

标签: python ms-access pyodbc


【解决方案1】:

是的,IP 地址可以用作 UNC 路径中的服务器名称。数据库文件必须可以从运行 Python 脚本的机器上的 Windows 文件系统访问,并且可以将其位置指定为本地文件...

C:\folder_name\EVT_LOG.mdb

...网络共享上的文件映射到驱动器号...

W:\some_folder\EVT_LOG.mdb

...使用服务器名称的 UNC 路径...

\\server_name\share_name\some_folder\EVT_LOG.mdb

...或使用服务器 IP 地址的 UNC 路径...

\\10.80.112.81\share_name\some_folder\EVT_LOG.mdb

但请注意,Windows 文件共享(有时称为 SMB 或 CIFS)几乎永远无法通过 Internet 直接访问,因此出于实际目的,托管数据库文件的服务器必须要么位于您的本地网络、安全的 WAN 上或通过 VPN 连接可用。在上述每种情况下,服务器很可能通过名称可用,因此不经常使用 IP 形式的 UNC 路径。

还请记住,该文件必须可以使用 Windows 文件共享访问,而不是 HTTP、FTP 等其他 Internet 协议。

【讨论】:

  • 非常感谢您的解释。这实际上是正确的,脚本本身没有问题。我发现的问题是在它本身不包含 odbc 的 Windows 服务器上。完成这里的操作后,它解决了:stackoverflow.com/questions/27952893/…
猜你喜欢
  • 2013-10-28
  • 1970-01-01
  • 2020-06-11
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多