簡體   English   中英

Connection to SQL Server from Julia on Ubuntu Linux using ODBC.jl won't connect

[英]Connection to SQL Server from Julia on Ubuntu Linux using ODBC.jl won't connect

我已經嘗試了在 web 上可以找到的所有排列,但仍然沒有運氣。 我知道連接是可能的,因為它可以從 R、dbeaver 和命令行 sqlcmd 輕松工作,但我無法使用 ZF89750C5A8C978EDBA003D96DB1318F7 從 Julia 讓它工作。

$ sqlcmd -S 66.66.66.66,1433 -U my.name -P mypasswd -d database_name -Q "SELECT TOP 5 stuff_id FROM table_name;"

stuff_id
-----------
A81064     
A82027     
A82046     
A82055     
A83011     

(5 rows affected)

但是在 Julia 1.7.0 我只是得到這個錯誤:

julia> using ODBC

julia> using DBInterface

julia> ODBC.drivers()
Dict{String, String} with 4 entries:
  "unixODBC"                          => "Driver=/usr/lib/x86_64-linux-gnu/libodbc.so.2\0UsageCount…
  "ODBC Drivers"                      => ""
  "ODBC Driver 17 for SQL Server"     => "Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8…
  "unixODBC/usr/lib/x86_64-linux-gnu" => "Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8…

julia> 

con = ODBC.Connection("Driver={ODBC Driver 17 for SQL Server};Server=66.66.66.66:1433,Database=database_name,UID=my.name,PWD=mypasswd")


ERROR: HYT00: [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired08001: [Microsoft][ODBC Driver 17 for SQL Server]MAX_PROVS: Connection string is not valid [87]. 08001: [Microsoft][ODBC Driver 17 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:33
 [2] driverconnect(connstr::String)
   @ ODBC.API ~/.julia/packages/ODBC/qhwMX/src/API.jl:114
 [3] connect
   @ ~/.julia/packages/ODBC/qhwMX/src/API.jl:351 [inlined]
 [4] ODBC.Connection(dsn::String; user::Nothing, password::Nothing, extraauth::Nothing)
   @ ODBC ~/.julia/packages/ODBC/qhwMX/src/dbinterface.jl:57
 [5] ODBC.Connection(dsn::String)
   @ ODBC ~/.julia/packages/ODBC/qhwMX/src/dbinterface.jl:55
 [6] top-level scope
   @ REPL[5]:1

我認為這可能與 odbcinst.ini 設置有關,但不知道如何調試/修復它。 歡迎提出任何建議。 謝謝。 Ĵ

我終於找到了解決這個問題的可行方法,但這非常困難,主要是因為其中大部分內容都缺乏文檔。 我不相信 ODBC 驅動程序設置正確,但它可以工作。 謝謝所有的建議。

朱莉婭>使用ODBC

朱莉婭> 使用 DBInterface

朱莉婭>使用數據幀

julia> ODBC.drivers() Dict{String, String} 有 4 個條目:“unixODBC”=>“Driver=/usr/lib/x86_64-linux-gnu/libodbc.so.2\0UsageCount=1\0”“ODBC驅動程序" => "" "用於 SQL 服務器的 ODBC 驅動程序 17" => "驅動程序=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.1\0UsageCount=6\0" "unixODBC/usr/lib/x86_64 -linux-gnu" => "驅動程序=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.1\0UsageCount=1\0"

julia> conn2 = ODBC.Connection("Driver=ODBC Driver 17 for SQL Server;SERVER=ip#;DATABASE=DBName;UID=UserName;PWD=Passwd") ODBC.Connection(Driver=ODBC Driver 17 for SQL Server;SERVER =ip#;DATABASE=DBName;UID=UserName;PWD=Passwd)

julia> results=DBInterface.execute(conn2, "SELECT TOP 15 variable FROM table")|> DataFrame 15×1 DataFrame 行│變量│字符串
─────┼──────────── 1 │ A81064 2 │ A82027 3 │ A82046 4 │ A82055 5 │ A83011 ⋮ │ ⋮ 12 │ A84027 13 │ A84030 14 │ A84032 15 │ A84033 6省略的行

朱莉婭>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM