是否可以在没有 root 权限的情况下为 SQL 服务器安装 unixODBC 驱动程序

Posted

技术标签:

【中文标题】是否可以在没有 root 权限的情况下为 SQL 服务器安装 unixODBC 驱动程序【英文标题】:Is it possible to install unixODBC driver for SQL server without root permission 【发布时间】:2016-07-08 06:34:38 【问题描述】:

我正在尝试在我们的计算机集群上运行 R 编程语言的 RODBC 包。 为此,我在我的主文件夹中下载并安装了unixODBC(遵循一些有用的说明here)

现在我意识到 SQL Server 所需的 ODBC 驱动程序不包括在内,但在尝试下载和安装此类驱动程序时,我遇到了它们都需要我没有的 root 权限的问题。

有没有办法在没有 root 权限的情况下安装 SQL 服务器 unixODBC 驱动程序?

我们的系统是:

CentOS Linux release 7.2.1511 (Core)

到目前为止,我已经查看了 Devart 和 Microsoft 提供的驱动程序。

【问题讨论】:

【参考方案1】:

我希望您特别需要 root 访问权限的唯一原因是编辑 odbc.ini 文件。您可以构建自己的 unixODBC 副本,并将前缀和/或 sysconf 设置为可访问的位置。或者设置 ODBCSYSINI 环境变量来告诉驱动程序管理器使用 $ODBCSYSINI/odbc.ini 和 $ODBCSYSINI/odbcinst.ini

Easysoft 驱动当然可以非 root 安装,只需设置 $EASYSOFT_ROOT 指向 /usr/local/easysoft 的替代项

【讨论】:

【参考方案2】:

我知道这是旧的,但我只是花了很多时间找出类似问题的解决方案。如果 SQL Server ODBC 驱动程序不可用,您可以使用 FreeTDS。这在我们的 Linux 中可用(而其他 SQL Server ODBC 驱动程序不可用)。它成功了。要了解您可以使用哪些 ODBC 驱动程序(以及它们在哪里),请运行 linux 命令:

odbcinst -j

要使用 FreeTDS,您应该使用您的设置修改本地 .odbc.ini 文件。以下是我的 .odbc.ini 中的示例:

[DB_NAME]
Driver=FreeTDS
Description=Microsoft SQL Server 2016
Server=address.of.your.server
Database=DB_NAME
Port=1433
TDS_Version=7.4
UseDeclareFetch

完成此操作后,我就可以连接到 SQL Server。 (我使用的是 Python,但我敢打赌类似的方法适用于 R。)

希望这对某人有所帮助。

【讨论】:

谢谢@datacathy!我不知道我们有一个本地的供用户编辑!

以上是关于是否可以在没有 root 权限的情况下为 SQL 服务器安装 unixODBC 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在没有自动布局的情况下为 iPad 设计视图?

统一3D。试图在没有权限的情况下为对象发送命令

是否可以在没有域命名的情况下为 GCS 存储桶设置索引文件?

是否可以在没有子查询的情况下为每个组检索顶部 ROW_NUMBER()?

linux下为普通用户添加root权限

linux下为普通用户添加root权限