我想在OSX Big Sur 11.1上第一次使用odbc和DBI库将SQL Server与R连接起来,但当我运行dbConnect((时,我得到了以下错误:
library(odbc)
library(DBI)
sql_conn <- dbConnect(
odbc::odbc(),
driver = "/usr/local/lib/libmsodbcsql.13.dylib",
server = "xxxxx",
Database = "xxxxx",
uid = "xxxxx",
pwd = "xxxxx",
port = xxxx)
Error: nanodbc/nanodbc.cpp:983: 00000: [unixODBC][Driver Manager]Can't open lib '/usr/local/lib/libmsodbcsql.13.dylib' : file not found
确切路径为/usr/local/lib/libmsodbcsql.13.dylib的文件确实存在,但错误仍然表明它不存在。以下是我的Finder的屏幕截图:/usr/local/lib/libmsodbcsql.13.dylib 的Finder SS
我尝试将dbConnect((中的驱动程序参数分配给文件路径,但没有成功。这与当我分配"0"时发生的错误相同;{用于SQL Server的ODBC驱动程序13}";至驾驶员。
我已经使用微软网站上的信息无数次地重新安装了我的驱动程序,我想我可能已经安装了用于SQL Server的ODBC驱动程序17和ODBC驱动程序13,微软的麻烦似乎表明这是一个使ODBC连接正常工作的问题。以下是关于这一点的线索:https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/known-issues-in-this-version-of-the-driver?view=sql-server-ver15#连接
如何卸载UnixODBC驱动程序?这是使SQL Server连接正常工作的正确解决方案吗?
我今天遇到了一个非常类似的错误。我了解到,当一个库出现丢失时,就像你观察到的那样,它可能存在,但仍然会出现这个错误。但它可能取决于其他由于某种原因而找不到的库。根据这个线程上最流行的答案,您可以运行ldd命令来确定找不到其他哪些库。在我的案例中,有一些已经安装在只有root用户可读的位置,我还必须创建一个符号链接,从一个库的名称到更新版本的名称。
同样,该命令是
# ldd /path/to/your/socalled/missing/file.so
你可能会得到一些看起来像的结果
libodbcinst.so.1 => not found
解决方案可能是
cd /lib64
sudo ln -s libodbcinst.so.2.0.0 libodbcinst.so.1
或
cd /usr/local/your.app
sudo chown a+rx lib
cd lib
cd chown a+rx *.so