Linked Server To MYSQL Using OLEDB Provider For MYSQL Cherry
Feb 12, 2007
Good Morning
Has anyone successfully used cherry's oledb provider for MYSQL to create a linked server from MS SQLserver 2005 to a Linux red hat platform running MYSQL.
I can not get it to work.
I've created a UDL which tests fine. it looks like this
[oledb]
; Everything after this line is an OLE DB initstring
I have created a linked server to a MySQL database using a DSN. Does anyone know how to run a select statement against a table in the MySQL database? The usual 4 part naming convention does not work.
I can run SELECT * FROM OPENQUERY(Top50, 'SELECT * FROM orders') which does return records successfully. (Top50 being the name of the linked server)
My objective is to be able to insert records into the MySQL database and I am not sure how do to that using OPENQUERY. Any thoughts on that would be appreciated as well.
Anyone know how to go about getting data from MySql to MS SQL server? Im a little confussed as to what ODBC driver is needed and all that. Is it possible to this all through enterprise manager? Thanks a lot.
We are trying to do a linked server to MySQL from MS SQL2k. We downloaded MyODBC drivers, setup the system dsn successfully but then SQL errors out using both the GUI and the stored proc to add the linked server to mysql. Does anyone have a good site to reference or any words of advice. An hr or so of google didn't really give up any helpfully information.
I have a problem , I created a linked server to mysql with following parameters:
New linked server: ServerName
Server Type: Other data Source: Microsoft OLE DB Provider for ODBC Drivers.
In the Provider String:Driver={mySQL ODBC 3.51 driver};Server="ip";Port=3306;Option=17923;Stmt=;Database="database";Uid=root;Pwd="pwd"
And I created a ODBC with mysql, and connection worked sucessfully!
The connection worked corretly until I' ve running a transact query in sql query analyzer, thats connects to MySQL and...
when I try to connect in SQL Server 2000 standard Ed. in linked Server, the following message appears to me now, and before this I was able to connect!
Server: Msg 7399, Level 16, State 1, Line 11 OLE DB provider 'MSDASQL' reported an error. The provider reported an unexpected catastrophic failure. ODBC: Msg 0, Level 19, State 1 SqlDumpExceptionHandler: Process 169 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process. OLE DB error trace [OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x8000ffff: The provider reported an unexpected catastrophic failure.
The query just make a select in MySQL, but I think that broke something...
I've installed MyODBC-3.51.06 and succsesfully created 2 odbc sources to the MySQL database with the ODBC data source administrator. One is a User DSN, the other a system DSN (Q1: what's the difference?) The test in that applet perfoms positively.
Running a dataimport of the tables using the import data option in enterprise manager does work as well.
Now for the part that gives me trouble. I would like to create a linked server using enterprise manager of SQL server 2000 (SQL 8.00.194) but I'm totaly stuck there. So Q2: how to get this set up?
I have setup a MYSQL server as a linked server in SQL SERVER 2000. I am able to select from a table using OPENQUERY as I understand that you can't use the 4 part qualifier to access an object from MYSQL as the ODBC driver does not expose the proper interface for this. The problem is that I cannot update,delete or insert into the OPENQUERY() table
eg. UPDATE OPENQUERY(MySQL_LinkedServer,'select id from msqlTableTest') SET id = 0
INSERT INTO OPENQUERY(MySQL_LinkedServer,'select id from msqlTableTest') VALUES(0)
DELETE FROM OPENQUERY(MySQL_LinkedServer,'select id from msqlTableTest') WHERE id = 0
This is the OLEDB PROVIDER FOR ODBC error I am getting...
The requested operation could not be performed because the OLE DB provider 'MSDASQL' does not support the required transaction interface. OLE DB error trace [OLE/DB Provider 'MSDASQL' IUnknown::QueryInterface returned 0x80004002].
I know there are brilliant Professionals on this forum. Please tell me that this is just an MDAC upgrade or something that is not configured correctly...
I can create a linked server to another MsSQL from MsSQL,but encounter error when create a linked server to MySQL: Error 7399:OLE DB provider 'MSDASQL' reported an error. Data source name not found and no default driver specified. ......
I want to create a table in MS-Access. So I have written the following query.
Code Snippet select * from Openquery(KKACC, 'select * Into Temp from Table select 1 as col1')
But I am getting the following error.
Code Snippet
OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "KKACC" returned message "Syntax error in FROM clause.". Msg 7321, Level 16, State 2, Line 1 An error occurred while preparing the query "select * Into Temp from Table select 1 as col1" for execution against OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "KKACC".
How can I resolve this error. Does any one have any work arround for this..?
I'm trying to use linked server to import big amount of data(around 9 million rows) from mysql to a sql 2005 table. I plan to create a stored procedure and use job agent to run it at off-peak time everyday. The SP is like:
..... Truncate table sqltblA;
Insert Into sqltblA(col1, col2, col3) Select col1, col2, col3 From OpenQuery('mysql', 'Select col1, col2, col3 From mytblB') .....
But when I tried to CREATE the above SP from management studio, seems the sql server was trying to get all data from table mytblB and ended up with failure after several minutes hang. The error message is sth. like "running out memeory". BTW, during that several minutes hang, I can't query mytblB using mysql's tool as well. it seems to me that table got locked.
However if i try to change the returned result to 100,000 rows by changing script to
Insert Into sqltblA(col1, col2, col3) Select col1, col2, col3 From OpenQuery('mysql', 'Select col1, col2, col3 From mytblB Limit 100000') The SP could be created without any problem and running the SP could get the data in table sqltblA. But that's not what I want, I need all rows instead of a certain amount of rows.
Does anyone know what's going on there when I try to CREATE that SP and any solution to it?
Plus I tried to use SSIS as well. When I'm configuring the DataReader source, which uses ADO.NET's ODBC option to connect to mysql, if its sqlcommand is "select * from mytblB" without the Limit key word, then the configuration page will hang there as well and table mytblB is not accessible by using mysql tool. I'm just sick of wasting time on that and that's why I chose to use SP istead of SSIS. But same result. :-(
Hi,I'm using a MYSQL database for this project. I installed hte .Net Framework Data Provider on my computer for development, but how can I get it on the host(LunarPages.com) Can I manually call on files in the connectionString or do I need to ask the tech support to install it for me, which will most likely not happen. Gosh, their windows servers lack sooo many things. Edit: I just tried uploading the source files of the data provider into my app_data directory. No change. Help? ThanksNick
I have an SSIS job that is pumping to a SQL Server Destination, hundreds of gigabytes of raw text files. Today I received this strange error ? Also, how would I make the data tasks more stable and robust so that this doesn't cause package failure (retries, or something?)
[SQL Server Destination [4076]] Error: An OLE DB error has occurred. Error code: 0x80040E14. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Reading from DTS buffer timed out.".
I have an internal Project Management and Scheduling app that I wrote internally for my company. It was written to use MySQL running on a Debian server, but I am going to move it to SQL Server 2000 and integrate it with our Accounting software. The part I am having trouble with is the user login portion. I previously used this:
PHP Code:
$sql = "SELECT * FROM users WHERE username = "$username" AND user_password = password("$password")";
Apparently the password() function is not available when accessing SQL Server via ODBC. Is there an equivalent function I could use isntead so the passwords arent plaintext in the database? I only have 15 people using the system so a blank pwd reset wouldn't be too much trouble.
:confused: Hallo! I'm trying to link a MySql 's DB in SQLServer with ODBC: the operation was susseful but I'm not able to read and write/update the data. HELP ME PLEASE!!! silvia, Italy
We have SQL Server 2000 on a Windows 2000 server and a mySQL database running on a Windows 2000 server. We have used MyOLEDB driver(OLEDB) to link the mysql database. How can I access the data stored in a Linked server?
Any help would be appreciated. Thanks!!
this is our code¡G exec sp_addlinkedserver @server='OLEDB_test', @srvproduct=N'', @provider=N'MySQLProv', @datasrc=N'203.xx.xx.xx', @catalog = N'Store'
select * from OLEDB_test.Store.root.Books or select * from OLEDB_test.Store..Books
error message: Can't create OLE DB Provider 'MySQLProv' instance¡C OLE DB error trace [Non-interface error: CoCreate of DSO for MySQLProv returned 0x80040154]¡C
by the way¡G 1.We Create an ODBC System DSN that points to our MYSql server 2.We use OLEDB for ODBC to create a linked server to mySQL 3.We have got the query to work with openquery but we can't update¡Bdelete¡Bmodify the data stored in a Linked server
This is a problem that never get solved, sometime I can use other way to avoid it, but havn't found a solution yet, i hope I can get some more idea here.
I am using SQL 2005, when I run
select * into #import1 from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;hdr=yes;database=\ws8webjeff2.xls', 'select * from [jeff2$]')
I get
Cannot initialize the data source object of OLE DB provider "microsoft.jet.oledb.4.0" for linked server "(null)".
when I try to compile a SP with that statement in it, I get the same error, like
create stored procedure test
as begin
select * into #import1 from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;hdr=yes;database=\ws8webjeff2.xls', 'select * from [jeff2$]')
end
so it seems the error may not relate to the real file, since at the compile stage, it should not check the real file?
On my live db, after I restart the SQL service, the statement will work, after a while, one or several days, I get the same error again. I can not restart my live db quite often for sure, so now I have another backup db server, I need run the statement on the backup server and then read the data from there.
I have the same problem at two places, both use SQL 2005.
So far there are three questions
1, why it works after restart, but only last for a while? something about memory? since the backup db seldom need restart and work fine after many days.
2, why it gives error in compile stage?
3, why two dbs in different Enviroment has the same problem
The most answer I have gathered so far is permission issue, true I got similar error if the import file is located in a place which SQL has no right to access. But in this case, it should not be.
Hello,I have a problem. I've linked MySql server to MsSql, in MySql I have atable with Latvian data(character set is ucs2, ucs2_general_ci) andthe problem is that when I use openquery to read data from MySQLserver, some characters are not translated correctly! I receivequestion symbols instead of Latvian special characters.Maybe someone had this kind of problem with collation?
When executing a query which joins against a large resultset from a linked server, SQL Server reports the following error: Msg 7399, Level 16, State 1, Line 1 The OLE DB provider "MSDASQL" for linked server "foo" reported an error. The provider reported an unexpected catastrophic failure. Msg 7303, Level 16, State 1, Line 1 Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "foo".
This is using SQL Server 2005 with SP2, and MyODBC version 3.51.16 (although previous versions also seem to have the same behavior).
Once the error occurs any subsequent query against the linked server (even something as simple as select top 3 * From foo...users) fails with the same error message. Queries using the OpenQuery syntax also fail with this error.
I've tried to determine if there are some error logs that might give me more insight into what's going on, but the above events don't seem to log to the ODBC trace logs. And I can't seem to figure out a way to trace the MSDASQL (i.e., oledb) events.
I initially thought there might be a problem with the MySQL myODBC driver, but the ODBC layer itself does not seem to have a problem. But the following steps indicate otherwise: 1. Create a new Linked Server to MySQL. Same error as above 2. Execute a query against the ODBC DSN directly, using a shell program. This works fine
I'm trying to clearly identify if the problem is with the MySQL driver or with the MSDASQL provider. It would appear that the latter is at fault, given the error message, and the lack of any ODBC logging.
Would anyone have any insights about what might be going on here, and if there is any possible resolution?
im trying to convert this table for a friend 1 CREATE TABLE adminmessage ( 2 adminmessageid INT UNSIGNED NOT NULL AUTO_INCREMENT, 3 varname varchar(250) NOT NULL DEFAULT '', 4 dismissable SMALLINT UNSIGNED NOT NULL DEFAULT '0', 5 script varchar(50) NOT NULL DEFAULT '', 6 action varchar(20) NOT NULL DEFAULT '', 7 execurl mediumtext NOT NULL, 8 method enum('get','post') NOT NULL DEFAULT 'post', 9 dateline INT UNSIGNED NOT NULL DEFAULT '0', 10 status enum('undone','done','dismissed') NOT NULL default 'undone', 11 statususerid INT UNSIGNED NOT NULL DEFAULT '0', 12 PRIMARY KEY (adminmessageid), 13 KEY script_action (script, action), 14 KEY varname (varname) 15 ) and was wondering how to do it when mssql doesn't have enums :(
I just started developing my site locally using SQL Server and am planning to move it to our work's MySQL server. Is there anything that I should be aware of before I continue any furthur? Will I lose any data or is it even an option to move from SQL Server to My SQL???
I am working for a client who needs to move database from MySQL application to MS SQL SERVER 7.0. Is there anybody who has done it before? I need some help about how to load data from one system to another system.
Hi there, I'm hoping someone out there can help me.
At my old job, I developed web applications that were based off of a MySQL server. I used PHPMyAdmin and learned the PHP coding, and although not formally trained in DBA or anything, I became very comfortable with using it and building database applications. I did everything through SQL/PHP script coding or through PHPMyAdmin.
At my new job, I decided to build a database, but only had access to MS Access, which I can use, but don’t necessarily like. One day, in earshot of one of our admins, I grumbled “if I only had access to a SQL server, I’d turn this thing into a very cool web application.� Well, he heard, and gave me access to the SQL server and the web server. Thing is, it’s not MySQL, but MS SQL Server. And I feel like I am at a total loss. I was able to build a basic database in the Enterprise Manager on the SQL server, and create a web site on the web server, but I don’t even know how to begin to connect the two – what is the equivalent of MySQLConnect? I know I would have to learn the VBScript and everything for the advanced stuff, but for right now, I just want to make a simple web page that will do a simple select query from a database and return the rows, and simple forms to input into the database. How do I begin? What do I need to know to begin? I have a feeling the applications already on the server were contracted out, so I don’t actually know if anyone here could help me.
I need to pull data out of SQL Server 2005 and load it into a MySql 5 database, and can't find a way to do this efficiently in SSIS since there's no ODBC destination, and I couldn't find an Oledb driver for MySQL. Any thoughts on the best way to accomplish this, aside from exporting to text, and then loading it into MySql via the mysql client or mysql importer?
Hey there,I'm curious about MySQL. Could anyone quickly summarize thedifferences between MySQL and SQL Server and outline why someone mightpick SQL Server over MySQL?(Please post replies here, email address is fake)Cheers,Geoff GlaveVancouver, Canada
I don't know if this is unique to GoDaddy: I found the program for working with a MySQL database very intuitive (to the point of compliments). Today I started work with ASP.NET and SQL, and when I went to work with SQL Server (on GoDaddy), it wasn't intuitive, and there was almost nothing on which to click. By chance might there be a tutorial that would help a person who needs to work with SQL Server on a provider like GoDaddy?
Hello all, I have an application in which the database is currently in MySQL. The app is being re-written(in .net 3.5) and I would like to move the data to SQL Server 2005. What is the best may to get the data from MySQL to SQL Server. Any good tools out there? Idealy, I would be able to manipulate the data during the move, as I have plans for some schema changes, but I suppose I could always make them after migrating. Please suggest any tools or methods, with your thoughts. I will evaluate any suggested tools. Also, SSIS is available for me, is that the best way?
hi ! i am using SQL Server 2000...someone told me the new version of Mysql 5.0 is very powerfull and it is better than MS products?!!! any good resources about the benefit of using SQL server 2000 rather than open source?!! Thanks!
I have used this mysql code in my programm before:
select * from address order by vorname asc limit 0, 10
It works fine. But now I want to use sql server, and it doesn't recognize the term limit. So I have found out that I can use top instead. I have changed my code into this:
select top 0 * from (select top 10* from address order by vorname) order by vorname asc
Hi all, hoping someone can help. I have created an ODBC connection to a remote MySQL database. I can then go into DTS wizard and specify this ODBC connection, it all goes through fine and I can see the tables on the remote server and import data. The problem arises when I try and create a linked server using the same ODBC connection. I get the following error, when I try to view the tables. I am so stuck. Any help would be very much appreciated.