我编译程序以连接到ms访问数据库,如下所示:
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数据源名称。有关在远程数据库上执行此pyodbc的任何想法吗?
答案 0 :(得分:2)
是的,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连接提供。在每种情况下,服务器很可能都是按名称提供的,因此不经常使用UNC路径的IP格式。
还要记住,文件必须可以使用Windows文件共享访问,而不是其他一些Internet协议,如HTTP,FTP等。