连接到 Jet/ACE 数据库的 Ubuntu Shiny 服务器

Posted

技术标签:

【中文标题】连接到 Jet/ACE 数据库的 Ubuntu Shiny 服务器【英文标题】:Ubuntu Shiny server connecting to Jet/ACE databases 【发布时间】:2014-08-09 08:24:01 【问题描述】:

可以做到吗:从运行在 Ubuntu Shiny 服务器上的 Shiny 应用程序中读取存储在 MS Access (.accdb) 数据库中的数据?

我们不了解 SQL Server Express。我们将数据组织在简单的 MS Access 数据库中,并希望在 Ubuntu Shiny 服务器上部署我们的 Shiny 应用程序(可视化这些数据)。

这一切都可以在我们的本地 Windows 机器上运行,但是如何让它也可以在 Ubuntu Shiny 服务器上运行呢?

我知道,以我们对数据库系统的了解很少,将我们的数据库移植到 SQL Server Express 并不简单。

提前感谢您的专业知识!

【问题讨论】:

Access 数据库应该可以使用ODBC 访问。一旦给出了适当的DSNRODBC 包将允许您连接到您的数据库。 @jdharrison 感谢您的评论。确实,我们在带有 RODBC 和适当 DSN 的 Windows 机器上工作。但是在 Ubuntu 机器上,我们应该使用 FreeTDS 之类的工具创建 DSN 吗?我找不到如何为 MS Access 配置 FreeTDS,只有 MS SQL Server。 【参考方案1】:

我自己设置了一些工作。我必须从多个来源获取信息才能获得所有必需的软件包——以下是一个很好的信息来源列表: http://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/ http://driftharmony.wordpress.com/2008/08/15/connecting-ubuntu-804-to-microsoft-sql-server/ https://code.google.com/p/django-pyodbc/wiki/FreeTDS FreeTDS working, but ODBC cannot connect

这 3 个文件最终是这样配置的:

Detail of file:  /etc/odbc.ini
[NameThis]
Driver = FreeTDS
TDS_Version=8.0
Servername = YourServer
Port = 1433
Database = testing
Trace = No

文件详情:/etc/odbcinst.ini

[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

文件详情:/etc/freetds/freetds.conf

#   $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $

# This file is installed by FreeTDS if no file by the same  name is found in the installation directory.  

# For information about the layout of this file and its settings, see the freetds.conf manpage "man freetds.conf".  

# Global settings are overridden by those in a database server specific section
[global]
        # TDS protocol version
;   tds version = 4.2

    # Whether to write a TDSDUMP file for diagnostic purposes 
    # (setting this to /tmp is insecure on a multi-user system)
;   dump file = /tmp/freetds.log
;   debug flags = 0xffff

    # Command and connection timeouts
;   timeout = 10
;   connect timeout = 10

    # If you get out-of-memory errors, it may mean that your client
    # is trying to allocate a huge buffer for a TEXT field.  Try setting 'text size' to a more reasonable limit
    text size = 64512

# Test Kx
[NameThis]
    host = YOUR IP
    port = 1433
    tds version = 7.2

【讨论】:

以上是关于连接到 Jet/ACE 数据库的 Ubuntu Shiny 服务器的主要内容,如果未能解决你的问题,请参考以下文章

自 JET 3.5 以来,Jet/ACE 是不是改善了其并发性和稳定性问题?

Jet/ACE 是不是使用带有 LIKE BeginsWith 查询的索引?

无法连接到 Ubuntu 中的 mysql 数据库

如何使用 C++ (ubuntu) 连接到 MySQL 数据库

在 Ubuntu 上从 PHP 连接到 SQL Azure

在 Ubuntu 中使用 Python 连接到 MySQL(奇怪的错误)