1. 程式人生 > >分享:sql server 連線mysql的問題和解決方法

分享:sql server 連線mysql的問題和解決方法

故障: 

環境: windows 2003 + sql server 2000 (sp4)

因為要訪問mysql 資料庫,所以安裝了MyODBC 3.51.12驅動,建立odbc資料來源test指向mysql資料庫
然後在sql server上建立連結伺服器testmysql。

但在使用
select * from openquery(testmysql,'select id from user where id=1')
時報錯,訪問mysql以前很正常,從沒有出錯過,錯誤如下:

---------------------------
錯誤 7399: OLE DB 提供程式 'MSDASQL' 報錯。提供程式報告了意外的災難性錯誤。
OLE DB 錯誤跟蹤[OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x8000ffff:  提供程式報告了意外的災難性錯誤。]。
---------------------------


問題解決!使用openrowset成功!

用sql server 2000或者sql server 2005 連線mysql 的其中2種方法:
1. openquery
2. openrowset

個人感覺openquery是適合菜鳥使用,openrowset適合高手使用,為什麼這麼說呢?
大家看一下兩個sql 語句就明白了:

1. select * from openquery(linkserver1,'select count(*) from user')
2. SELECT * FROM OPENROWSET('MSDASQL','DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.168.0.1;PORT=3306;DATABASE=test;USER=dbauser;PASSWORD=userpw;STMT=set names gb2312;OPTION=2049','select count(*) from user;')

從原理上說兩張方法是一樣的效果,但許多情況下openquery會報錯,莫名其妙的錯誤。這2種方法的不同之處:

1需要建立一個連mysql的odbc連線,然後在sql server建個linkserver使用這個odbc連線。
2什麼都不用,直接使用連線字串去連mysql

MSDASQL 是處理ODBC連線的微軟資料訪問元件,所有的引數是根據所用的Driver而定。
我這裡使用的是MySQL ODBC 3.51 Driver,就必須去檢視MySQL ODBC 3.51 Driver的連線引數

MySQL ODBC 3.51 Driver的連線引數見下面網址:
http://dev.mysql.com/doc/refman/5.0/en/connection-parameters.html


希望我的經歷能給一直鬱悶的兄弟有點幫助,至少我不鬱悶了,哈哈哈

注意:在sql server 2005 上使用openrowset需要開啟2個開關:

1.  在登錄檔查詢DisallowAdhocAccess  置為1
2.  開啟ad hoc高階選項

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries',1
GO
RECONFIGURE;
GO

----如果還有其它問題,發信給我
[email protected]

相關推薦

分享sql server 連線mysql的問題解決方法

故障: 環境: windows 2003 + sql server 2000 (sp4)因為要訪問mysql 資料庫,所以安裝了MyODBC 3.51.12驅動,建立odbc資料來源test指向mysql資料庫然後在sql server上建立連結伺服器testmysql。但在使用select * from o

數據庫操作對比Sql ServerMYSQL相比有哪些建站優勢?

ASP PHP IT SQL MYSQL 最近一直在做博客網站,從定位主題到程序和數據庫的選擇,確實廢了不少心思,經過細致的思考,最終將主題定位為讀書方面,還有文學和學習筆記,但是對於程序和數據庫問題,我一直就比較費心,因為個人是個技術小白,因此在這方面有些難題要解決。 第一個難題:博客程

Navicat無法遠端連線與本地連線MySQL伺服器解決方法

方法一: 使用Navicat遠端連線MySQL伺服器時,提示如下圖情況: 根據查閱不同資料發現,這個問題是因為root使用者使用的加密方式不同,需將其加密方式改為mysql_native_password,即可實現遠端連線MySQL伺服器。 那麼,怎麼來修改root使用者的Auth

分享一些python中的錯誤解決方法

 1. SyntaxError: 'return' outside function 解決: 將return 放在方法體中,return不能在方法以外使用 2.name='小王'    age=16    print('我的名字是'+

SQL Server 2008安裝出錯解決方法

因為課程需要做實驗,需要安裝資料庫,以前安裝的時候沒有出現這麼多問題,基本上按照網上的安裝教程安裝的話都能成功。這幾天安裝資料庫的時候不知道怎麼了,不是資料庫引擎安裝不上就是服務也安裝不上,好不容易安裝成功了,又登不進資料庫,然後又卸了重灌,裝了又解除安裝,浪費時間。 1.

JSP在tomcat伺服器下無法連線MySql問題解決方法

我連的是MySQL資料庫,但是在伺服器下執行jsp檔案時會出現如下的狀況: 控制檯報錯:com.mysql.jdbc.Driver 即不能找到驅動程式,通過我的一次次試驗,終於得到解決 首先我的程式碼編寫是沒有問題的,而且我已經在eclipse下的jar庫中匯入了jdbc驅

Windows10安裝SQL server 2016/2014 失敗解決方法( 錯誤程式碼: 0x851A0019)

最近想學資料庫,但是在安裝SQL2014時總是失敗,原因是  ( 錯誤程式碼: 0x851A0019)找不到資料庫引擎啟動控制代碼!網上找了很多解決方法都無效。我以為是應為Win10系統的原因,就裝了SQL2016但是依然因同樣的原因而失敗,直到我看到這個部落格:http

做檔案移動時,提示“操作無法完成,應為檔案已在SQL Server(MSSQLSERVER)中開啟解決方法

也許是因為我的SQL SERVER2005必須要提供管理員許可權方可進行使用,所以在移動的時候經常提示 操作無法完成,應為檔案已在SQL Server(MSSQLSERVER)中開啟 百度了一下,一位大神的解決方法很有效 開始--》Microsoft SQL Serv

在X64系統中PowerDesigner無法連線MySQL解決方法

我windows環境是:win7 64位,安裝的是32位powerdesigner。 由於需要連線mysql資料庫,所以需要下載mysql 的odbc驅動,在官網上下載了×64的驅動(http://d

JDBC連線MySQLSQL Server的工具類

簡單的JDBC連線,沒有用c3p0之類的連線方式,所有連線資訊也直接放在了工具類裡,有需要的自己去改 JDBCUtils1.java package mysqlutils; import java.sql.DriverManager; import j

解決方案SQL Server Native Client 11.0 不支援連線SQL Server 2000 或更早的版本。

SQL Server 2014 Management Studio 連線sqlserver2000提示:SQL Server Native Client 11.0 不支援連線到 SQL Server 2000 或更早的版本。 安裝SQL Server Native Clie

SQL Server、OracleMySQL判斷NULL的方法

ron gin round exp style ref int 宋體 oat SQL Server、Oracle和MySQL判斷NULL的方法本文講述SQL Server、Oracle、MySQL查出值為NULL的替換。 在SQL Server Oracle MySQL當數

遠端連線區域網內的sql server 無法連線 錯誤與解決方法

第一個錯誤"SQL Server 不存在或訪問被拒絕"通常是最複雜的,錯誤發生的原因比較多,需要檢查的方面也比較多 。一般說來,有以下幾種可能性:   1、SQL Server名稱或IP地址拼寫有誤;   2、伺服器端網路配置有誤;   3、客戶端網路配置有誤。   要解決這個問題,我們一般要遵循以

SQL ServerMySql資料來源連線資料庫

SQL Server資料來源連線資料庫: 首先在META-INF下新建context.xml,內容如下: <?xml version="1.0" encoding="UTF-8"?> <Context reloadable = "true"&g

sql servermy sql 命令(語句)的區別,sql servermysql的比較

  sql與mysql的比較 1、連線字串 sql  :Initial Catalog(database)=x;  --資料庫名稱       Data S

MySQL執行錯誤解決Can't connect to MySQL server on localhost (10061)解決方法

問題描述: 在命令列輸入 mysql -u root -p 登入mysql,返回”Can’t connect to MySQL server on localhost (10061)”錯誤。 解決方法: 1、將mysql加入到Windows的服務中。切換到my

SQL ServerMySQL (一)異構資料庫遷移

背景 滬江成立於 2001 年,作為較早期的教育學習網站, 當時技術選型範圍並不大: Java 的版本是 1.2,C# 尚未誕生,MySQL 還沒有被 Sun 收購, 版本號是 3.23。 工程師們選擇了當時最合適的微軟體系,並在日後的歲月裡, 逐步從 ASP 過度到 .net,資料庫也跟隨 SQL Ser

Excel匯入SQL SERVER,數字字元會被系統自動置為NULL的解決方法

          在將Excel資料匯入SQLServer過程中,SQLServer會做出判斷,是採用float型還是nvarchar型來接受資料,當資料來源為數字和字元的組合時,系統會出現將型別設定為float,從而將混合方式的資料設定為NULL的情況,為此有以下解

SQL SERVER NULL值連線注意問題

聯接表的列中的 null 值(如果有)互相不匹配。如果其中一個聯接表的列中出現空值,只能通過外部聯接返回這些空值(除非 WHERE 子句不包括空值)。 下面的兩個表中,每個表中要參與聯接的列中均包含

Mysql 連線提示 Client does not support authentication protocol requested by server; consider upgrading MySQL client 解決方法

Mysql 4.1以上的版本在連線資料庫時出現:Client does not support authentication protocol requested by server; consider upgrading MySQL client 按照以下辦法可以得到解決,