Linux+mono+Apache访问SQLServer数据库和Oracle数据库
这几天研究Linux平台下,如果通过桌面程序和ASP.net访问SqlServer数据库和Oracle数据库,发现网上写的好多文章都不完善,很多是无用的多余的设置,而又不讲原理,本人研究了几日,经证实如下设置完全能满足要求。 前提:OS:CentOS5.5 A.安装mono2.6 增加一个
这几天研究Linux平台下,如果通过桌面程序和ASP.net访问SqlServer数据库和Oracle数据库,发现网上写的好多文章都不完善,很多是无用的多余的设置,而又不讲原理,本人研究了几日,经证实如下设置完全能满足要求。
前提:OS:CentOS5.5
A.安装mono2.6
增加一个新的代理文件,写入http://ftp.novell.com/pub/mono/download-stable/RHEL_5/。这是mono官方提供的针对CentOS的最新的mono平台。
yum --disablerepo=extras *mono* (注意:/etc/yum.repos.d/CentOS-Base.repo中的[extras]节也有一个版本的mono,不过很老了应该是1.1版本的,这里屏蔽掉了这个源,从而只安装最新版本的mono)
安装完后,会自动修改httpd相应的设置,无需手工再修改之。
B.安装freetds
yum install freetds
C.安装OracelInstantClient
去官方下载.zip压缩文件即可,就几十MB大小,解压到/opt/oracle/。
0. Linux下访问Oracle和SqlServer的小工具
0.1命令行访问SqlServer
安装完freetds后,会安装一个名为tsql的小工具,基本使用方法:
#tsql -S SqlServer服务器IP地址 -p 端口号 -U 用户名 -P 密码
正确登陆后,出现如下提示符:
>
输入
>select * from 表名;回车
>go;回车
然后会显示查询的内容。
0.2命令行访问Oracle
安装好InstantClient后,再下载一个sqlplus(很小)解压都同一目录下即可。把这一目录加入PATH
然后执行如下命令连接远程Oracle数据库
#sqlplus 用户名/密码@服务器IP/实例名
成功登陆后显示
SQL >
输入
SQL> select * from 表名;回车
即可看到查询结果。
1. Linux下mono访问SqlServer数据库
调用方式:
mono在调用方式上与.net Framework完全相同,都是采用System.Data.SqlClient命名空间中的类来完成数据库操作。
实现原理:
System.Data.SqlClient中的类库的实现靠的是通过P/Invoke调用freetds共享库的函数完成。所以必须安装freetds,在CentOS5.5中通过yum install freetds完成。
示例代码:
sqlserver.cs
编译命令:gmcs -r:System.Data sqlserver.cs
运行命令:mono sqlserver.exe
2.Linux下mono访问Oracle数据库
调用方式:
mono在调用方式上与.net Framework完全相同,都是采用System.Data.OracleClient命名空间中的类来完成数据库操作。
需要注意的是,目前微软已经不建议在.net 平台上用System.Data.OracleClient了,因为Oracle自己提供了一个Oracle.Data.Access类库来提供.net对Oracle数据库的访问。然而在mono平台上,System.Data.OracleClient仍是最好的访问Oracle数据库的方式。
实现原理:
System.Data.OracleClient中的类库的实现靠的是通过P/Invoke调用libclntsh.so共享库的函数完成。需要安装Oracle提供的InstantClient,这个软件是典型的绿色软件,下载后解压即可。需要注意的是要让mono能找到这个共享库,因此需要把它所在的路径加入LD_LIBRARY_PATH环境变量。例如解压后目录是/opt/oracle/instantclient_11_2,那么需要在/etc/profile中,写入如下:
export LD_LIBRARY_PATH=/opt/oracle/intantclient_11_2:$LD_LIBRARY_PATH,另外还需要设置NLS_LANG如下:
export NLS_LANG=AMERICAN_AMERICA.UTF8
最后做个软连接
ln -s /opt/oracle/instantclient_11_2/libclntsh.so.0.0.0 /opt/oracle/intantclient_11_2/libclntsh.so
然后执行ldconfig刷新缓存。
此时mono已经能够访问oracle数据库了。
示例代码:
oracle.cs
编译指令:gmcs -r:System.Data.OracleClient oracle.cs
运行指令:mono oracle.exe
3.基于Apache的mono对SqlServer的访问
在CentOS下,如果通过yum安装的freetds和mono以及mod_mono,那么没有什么问题了,与1基本相同。不再累述。
4.基于Apache的mono对Oracle的访问
这里需要注意,在/etc/profile设定的LD_LIBRARY_PATH和NLS_LANG等环境变量,在httpd里并不知情,httpd是服务程序,不是从shell启动的。此时/opt/novell/mono/bin/mod-mono-server也是通过httpd启动的,所以也不知道这些环境变量,这样导致了mono无法确定需要通过p/Invoke调用的libclntsh.so,所以会导致无法访问Oracle.解决方式:
修改/opt/novell/mono/bin/mod-mono-server,修改后如下:
#!/bin/sh
export LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2:$LD_LIBRARAY_PATH
export NLS_LANG=AMERICAN_AMERICA.UTF8
exec /opt/novell/mono/bin/mono $.................................
然后重新启动httpd服务即可。
如果需要在JDBC下访问Oracle和SqlServer,参见我的另一篇博客:http://blog.csdn.net/smstong/article/details/8129536

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

匯入步驟如下:將 MDF 檔案複製到 SQL Server 的資料目錄(通常為 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)。在 SQL Server Management Studio(SSMS)中,開啟資料庫並選擇「附加」。點選“新增”按鈕,選擇 MDF 檔案。確認資料庫名稱,點選確定按鈕即可。

對於 SQL Server 資料庫中已存在同名對象,需要採取下列步驟:確認物件類型(表格、檢視、預存程序)。如果物件為空,可使用 IF NOT EXISTS 跳過建立。如果物件有數據,使用不同名稱或修改結構。使用 DROP 刪除現有物件(謹慎操作,建議備份)。檢查架構更改,確保沒有引用刪除或重新命名的物件。

若要查看 SQL Server 連接埠號碼:開啟 SSMS,連線到伺服器。在物件資源管理器中找到伺服器名稱,右鍵單擊它,然後選擇“屬性”。在「連線」標籤中,查看「TCP 連接埠」欄位。

當 SQL Server 服務無法啟動時,可採取下列步驟解決:檢查錯誤日誌以確定根本原因。確保服務帳戶具有啟動服務的權限。檢查依賴項服務是否正在執行。禁用防毒軟體。修復 SQL Server 安裝。如果修復不起作用,重新安裝 SQL Server。

在iOS17中,Apple可以更好地控制應用程式可以看到的照片內容。繼續閱讀,了解如何按應用程式管理應用程式存取權限。在iOS中,Apple的應用程式內照片選取器可讓您與應用程式分享特定照片,而照片圖庫的其餘部分則保持私密。應用程式必須要求存取您的整個照片圖庫,您可以選擇授予應用程式以下存取權限:受限存取–應用程式只能看到您可以選擇的圖像,您可以隨時在應用程式中或透過前往「設定」> ;“隱私和安全性”>“照片”來查看所選圖像。完全存取權限–App可以查看照片

若誤刪 SQL Server 資料庫,可採取下列步驟還原:停止資料庫活動;備份日誌檔案;檢查資料庫日誌;復原選項:從備份還原;從交易日誌還原;使用 DBCC CHECKDB;使用第三方工具。請定期備份資料庫並啟用交易日誌以防止資料遺失。

SQL Server 資料庫檔案通常儲存在下列預設位置:Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data可透過修改資料庫檔案路徑設定來自訂資料庫檔案位置。

如果 SQL Server 安裝失敗,可透過下列步驟清理:解除安裝 SQL Server刪除註冊表項刪除檔案和資料夾重新啟動計算機
