[精讚] [會員登入]
15

[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

你可能感興趣的文章

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

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

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

PHP for sphinx 函式庫安裝 PECL/sphinx PHP>= 5.2.2 已經能原生支援 sphinx,可是預設的沒有裝,我們得自己裝才能用

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

[CENTOS7] 使用 logrotate 來整理mongo日誌檔 解決 mongo 的日誌檔不斷長大的問題

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

UTF8中文字/全形一覽 快速查詢urf-8的中文字,共計13246中文字(5401常用字+7652罕用字+日文或編號),292全形符號,27半形符號。

UTF-8的網頁但IE8一片空白 UTF8編碼的網頁在Firefox 正常顯示、但IE8 就是空白,IE8編碼設定是「自動偵測」可是自動偵測到的是 big5...

APACHE的記錄檔格式 LogFormat 語法 在APACHE中有定義一些記錄的語法模版 在 /etc/httpd/conf/httpd.conf 中: LogForm

「許功蓋」的字以及源由 有玩過電腦一段時間的人,都聽過這個人(有一天我才發現7年級的竟然都不認識這個

維修海棉拖把頭 這類型的海棉拖把很好用,可是這近發現海棉頭越來越不耐用,也許是錯覺,以往都能用個三四個月,現在二個月就差不多掉下來。 這