[精讚] [會員登入]
243

[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

你可能感興趣的文章

TFTP Server 安裝及使用 讓設備的網路設定檔或是韌體經由TFTP拷備出來,操作的方法

[Centos8] linux 上的Base64加解密指令 在linux上很方便的指令可以加解密 base64

安裝網頁套件管理程式 Bower 一個非常棒的Javascript套件管理程式bower,用完愛不釋手。

[Centos7] 新的防火牆firewalld Centos7新的防火牆firewalld 和前面的iptables有很大的不同

[Linux] 使用tarball安裝下載PERL的tar檔模組 在Linux下,perl下載的pm模組,不使用cpan的安裝方法

[Rocky9] codeignitor4+ php:8.3-apache + docker compose 這次的目標是把服務裝在docker,裡面放入php8.3-apache的 docker container, 並採用codeignitor4作基礎的設置。

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

[jQuery] textarea 的取值和給值 HTML 的 TEXTAREA 標籤若要用 jquery 取值,不能使用 .text() 或 .html() ,使用 .

魔球中小女孩唱的歌 The show 魔球中小女孩唱的歌 The show

[PHP] 檢查IP是否在某個網段內 mtachcidr 要檢查IP是否在某個網段內,要寫幾行?10行?5行? 不用,只要2行。以下是我寫的 code /** * matchCI

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

[AS3] 變數型態 基本類型宣告 as3 有下列幾種基本類型:string, int, number, object, boolean, n