| Bug #12871 | Not working under Mono on linux | ||
|---|---|---|---|
| Submitted: | 30 Aug 2005 9:52 | Modified: | 27 Mar 2008 15:15 |
| Reporter: | Dimitris Tavlikos | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Connector / NET | Severity: | S4 (Feature request) |
| Version: | 1.0.5 | OS: | Linux (FC3) |
| Assigned to: | CPU Architecture: | Any | |
[30 Aug 2005 9:52]
Dimitris Tavlikos
[8 Sep 2005 6:14]
Brion Vibber
Here's a test program to reproduce the bug. If successful it should run with no output, or perhaps show a sensible connection error.
using System.Data;
// Fails with MySQL Connector/NET 1.0.5
// Works with an older version dated January 20, 2005
// mcs -r:System.Data -r:MySql.Data.dll Test.cs
using MySql.Data.MySqlClient;
// Works with ByteFX shipped with Mono
// mcs -r:System.Data -r:ByteFX.Data Test.cs
//using ByteFX.Data.MySqlClient;
public class MainClass {
public static void Main(string[] args) {
string connstr = "server=localhost;uid=root";
MySqlConnection db = new MySqlConnection(connstr);
db.Open();
db.Close();
}
}
With MySQL Connector/NET 1.0.5 on Linux or Mac OS X with Mono 1.1.8, I get a failure like this:
Unhandled Exception: MySql.Data.MySqlClient.MySqlException: Unable to connect to any of the specified MySQL hosts ---> System.DllNotFoundException: ws2_32.dll
in (wrapper managed-to-native) MySql.Data.Common.NativeMethods:ioctlsocket (intptr,uint,uint&)
in <0x0005b> MySql.Data.Common.SocketStream:Connect (System.Net.EndPoint remoteEP, Int32 timeout)
in (wrapper remoting-invoke-with-check) MySql.Data.Common.SocketStream:Connect (System.Net.EndPoint,int)
in <0x000f1> MySql.Data.Common.StreamCreator:CreateSocketStream (System.Net.IPAddress ip, Int32 port, Boolean unix)
in <0x002e3> MySql.Data.Common.StreamCreator:GetStream (Int32 timeOut)
in <0x00176> MySql.Data.MySqlClient.NativeDriver:Open ()--- End of inner exception stack trace ---
in <0x001c3> MySql.Data.MySqlClient.NativeDriver:Open ()
in <0x00027> MySql.Data.MySqlClient.Driver:Create (MySql.Data.MySqlClient.MySqlConnectionString settings)
in <0x0008d> MySql.Data.MySqlClient.MySqlPool:CreateNewPooledConnection ()
in <0x001b0> MySql.Data.MySqlClient.MySqlPool:GetPooledConnection ()
in <0x0003f> MySql.Data.MySqlClient.MySqlPool:GetConnection ()
in <0x000e9> MySql.Data.MySqlClient.MySqlPoolManager:GetConnection (MySql.Data.MySqlClient.MySqlConnectionString settings)
in <0x00050> MySql.Data.MySqlClient.MySqlConnection:Open ()
Both the libraries in the .NET 1.0 and .NET 1.1 subdirectories seem to have the same result. I was surprised to find this Windows DLL-specific bit as I had used an earlier version successfully on Linux/Mono. Unfortunately I don't have the version number offhand but the library is dated January 20, 2005, and I can still confirm that it works if I copy in that version of MySql.Data.dll.
The Mono web site currently recommends MySQL Connector/NET for MySQL development with Mono at http://www.mono-project.com/MySQL, and MySQL documentation at http://dev.mysql.com/doc/mysql/en/connector-net-installation.html specifically mentions supporting Mono, so it not working is a bit of a surprise.
Is this an intentional, recent shift to abandoning cross-platform support or just a bug? The documentation in the package doesn't mention Mono except for some old notes in the change log saying that it worked as of 0.65.
[27 Mar 2008 15:15]
Reggie Burnett
This is no longer the case (and hasn't been for some time)
