Posit Cloud R Studio连接本地SQL Server失败原因咨询
问题原因与解决方案
差异原因
本地RStudio运行在Windows环境,系统默认预装了适配Windows的SQL Server ODBC驱动(名称为SQL Server);而Posit Cloud的RStudio运行在Linux(Ubuntu)环境,默认没有安装SQL Server的Linux版ODBC驱动,且Linux下的驱动名称与Windows不同,这是导致代码运行差异的核心原因。
解决步骤
1. 在Posit Cloud中安装Linux版SQL Server ODBC驱动
在Posit Cloud的终端中执行以下命令,安装微软官方的Linux版SQL Server ODBC驱动及依赖:
sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list exit sudo apt-get update sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17 unixodbc-dev
2. 修改连接代码的Driver参数
将原代码中的Driver = "SQL Server"替换为Linux环境下的驱动名称"ODBC Driver 17 for SQL Server",修改后的代码如下:
library(DBI) library(odbc) con <- dbConnect(odbc::odbc(), Driver = "ODBC Driver 17 for SQL Server", Server = "DESKTOP-4PC1LOK\\SQLEXPRESS", Port = "1433", UID = "publicaccess", PWD = "password", Database = "crime_camera_west_arlington", timeout = 10)
3. 确保本地SQL Server允许远程连接
- 打开本地SQL Server配置管理器,启用SQL Server网络配置中的TCP/IP协议,并设置端口为1433;
- 配置本地防火墙,允许1433端口的入站连接,确保Posit Cloud服务器能访问到你的本地SQL Server。
内容的提问来源于stack exchange,提问作者gcarterIT
相关产品推荐
相关产品推荐

