[精讚] [會員登入]
160

[MSSQL] 使用linux連接微軟的MS-SQL

職務上需要連接到mssql,這是我第一次試圖在linux連接mssql。

分享此文連結 //n.sfs.tw/16486

分享連結 [MSSQL] 使用linux連接微軟的MS-SQL@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
最後編修
2025-02-07 15:10:33 By 張○○
 

自動目錄

職務上需要連接到mssql,這是我第一次試圖在linux連接mssql,以前有寫過.net一段時間,但是十多年不曾再碰,現在早忘得一乾二淨。

好在網路上很多熱心的網友,做起來不難。

OS

Linux tyc 5.15.0-209.161.7.2.el9uek.x86_64 #2 SMP Tue Aug 20 10:44:41 PDT 2024 x86_64 x86_64 x86_64 GNU/Linux
Red Hat Enterprise Linux release 9.4 (Plow)

安裝連線用底層 unitODBC

這個是連資料庫用的 adapter ,一定要裝,注意大小寫,原本參考的資料不正確[1][2]?。

# yum install unixODBC

這樣就好了,其它不必設定。

 

安裝連線資料庫的agent

依照[2]的建議安裝 freetds

# yum install freetds

注意名稱改了,修改設定檔:

# vi /etc/freetds.conf

[sql48]
        host = 192.168.0.55
        port = 1433
        tds version = 7.0

刮號中的名稱自取,tds版本的話請參考微軟的資料[3][4]。

 

測試

使用tsql來測試

# tsql -S sql48 -U username

 

# tsql -S sql48 -U username
Password:<打入密碼>
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1><輸入指令>

這裡已經確定資料庫沒有問題了,接下來可以下sql,第一次用發現怎麼下指令都沒用,最後透過[5]的說明,才知道要用go,例如show databases:

1> SELECT name, database_id, create_date FROM sys.databases;
2> go
name    database_id     create_date
master  1       Apr  8 2003 09:13:36:390AM
tempdb  2       Jan 21 2025 05:35:55:950PM
model   3       Apr  8 2003 09:13:36:390AM
msdb    4       Oct  8 2022 06:31:57:550AM
MYDB  5       Oct 28 2024 02:55:31:853PM
MYDRP_DEV       6       Feb  7 2025 11:02:01:537AM
MYDRP   7       Feb  3 2025 11:39:49:093AM
MYDRP_TEST      8       Feb  7 2025 11:01:51:913AM
(8 rows affected)

show tables[6]

1> SELECT * FROM INFORMATION_SCHEMA.TABLES;
2> go
TABLE_CATALOG   TABLE_SCHEMA    TABLE_NAME      TABLE_TYPE
MYDRP   dbo     my_table  VIEW
(1 row affected)

查看 sql server 版本

1> SELECT @@VERSION

查看每個資料表筆數

1> SELECT
          t.NAME AS TableName,
          p.rows AS TotalRow
FROM
        sys.tables t
        INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id
        INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID
        AND i.index_id = p.index_id
GROUP BY t.Name, p.Rows
ORDER BY p.rows DESC

取回一筆資料

1> select top 50 * from my_table;

這樣子大致上就只剩寫程式,祝使用愉快。

 

參考資料

[1] https://blog.csdn.net/neighbor1000/article/details/8824084

[2] https://blog.51cto.com/u_16213320/7083674

[3] https://www.freetds.org/userguide/choosingtdsprotocol.htm#idm67886704

[4] https://www.freetds.org/userguide/choosingtdsprotocol.htm

[5] https://learn.microsoft.com/en-us/sql/relational-databases/databases/view-a-list-of-databases-on-an-instance-of-sql-server?view=sql-server-ver16

[6] https://www.atlassian.com/data/sql/sql-server-list-tables-how-to-show-all-tables

[7] https://medium.com/zero0029/sql-server-%E6%9F%A5%E8%A9%A2%E8%B3%87%E6%96%99%E5%BA%AB%E4%B8%AD%E6%AF%8F%E5%80%8B%E8%B3%87%E6%96%99%E8%A1%A8%E7%9A%84%E7%AD%86%E6%95%B8-rows-8367692217f

 

 

END

你可能感興趣的文章

[CENTOS7] 安裝rrdtool+RRDs+PERL 要讓perl繪圖,安裝rrdtool和RRDs

[DNS] 把Named 產生的log放到遠端伺服器 把named的log放到log server以符合資安的需求。

[MSSQL] 使用linux連接微軟的MS-SQL 職務上需要連接到mssql,這是我第一次試圖在linux連接mssql。

[Centos] opentftp + selinux 安裝及設定 Centos 安裝微型ftp伺服器:tftp伺服器

dnf 一個即將取代 yum的套件管理程式 centos 系統中老牌的套件管理程式yum,也許未來將被dnf所取代

[bc] linux 的計算機 bc 設定小數位數、計算π、次方根 linux 的計算機 bc 設定小數位數、計算π、次方根

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

[CodeIgniter 3] 資料庫的使用方法整理1/2 --Select的使用 [CodeIgniter 3] 資料庫的使用方法整理:Select的使用

[大型機台] 熱血高校躲避球 多少少年時光歲月耗在這個遊戲上,二十幾年前的那個時光,唯一想做的事就是把吃飯錢省下來拿去打一場五塊錢的電動,就算是沒錢也

分享還是炫耀? 是分享還是炫耀,取決於對方的的心態和你的心態...

[Javascript] 偵錯方式 (火狐中的javascript偵錯) javascript 並不是很容易偵錯(debug)的語言,但那是以前,現在有很多瀏覽器支持很多的工具,此文以火狐為例談談偵錯...