Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: MySQL ODBC Driver 5.1 в Mono  (Прочитано 3949 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ariocx

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
MySQL ODBC Driver 5.1 в Mono
« : 25 Апреля 2009, 23:25:32 »
Всем доброго времени суток !

Есть такая проблема.

Мне надо запустить скрипт на C# который конектиттся к MySQL.
Установил ODBC драйвер вот таким макаром :
sudo apt-get install iodbc
sudo apt-get install libmyodbc
iodbcadm-gtk

Там прописал  :

"Driver file name"  =  /usr/lib/odbc/libmyodbc.so
"Setup file name"  = /usr/lib/odbc/libodbcmyS.so

Создал DSN, протестировал, получил такое :
http://www.valar.ru/gallery/0409/1240682620_.png

При старте скрипта получаю следующий камень :
MyRunUO: Unable to connect to the database
System.DllNotFoundException: libodbc.so

Сам скрипт коннекта :
using System;

using System.Text;

using System.Threading;



namespace Server.Engines.MyRunUO

{

public class Config

{

// Is MyRunUO enabled?

public static bool Enabled = true;



// Details required for database connection string

public static string DatabaseDsn = "ODBC";

public static string DatabaseServer = "localhost";

public static string DatabaseName = "MyRunUO";

public static string DatabaseUserID = "root";

public static string DatabasePassword = "root";
               
                public static string CompileConnectionString()

{

string connectionString = String.Format( "DSN=ODBC;SERVER={1};DATABASE={2};UID={3};PASSWORD={4};",

DatabaseDsn, DatabaseServer, DatabaseName, DatabaseUserID, DatabasePassword );



return connectionString;

}

}

}


Помогите разобраться ! Заранее Спасибо !

Оффлайн xplicit

  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Re: MySQL ODBC Driver 5.1 в Mono
« Ответ #1 : 26 Апреля 2009, 19:07:43 »
Как мне кажется, лучше для связи с MySql использовать managed net connector вместо ODBC. Под виндой писал приложения с его использованием - проблем не было, к тому же этот коннектор позволяет использовать многие фичи mysql, которые недоступны через obdc.

В ubuntu 9.04 его установить можно выполнив команды:
sudo aptitude install libmysql5.0-cil monodoc-mysql5.0-manual

Добавить пакет MySql.Data в референсы проекта

using System;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;


namespace mysqlTest
{
class MainClass
{
public static void Main(string[] args)
{

using (MySqlConnection cnn=new MySqlConnection("Server=localhost;Database=test;Uid=root;Pwd=password;"))
{
     cnn.Open();

MySqlCommand cmd=new MySqlCommand("insert into test1 values (1,'test')",cnn);
cmd.ExecuteNonQuery();

cmd=new MySqlCommand("select count(*) from test1",cnn);
Console.WriteLine("{0}",cmd.ExecuteScalar());
}
}
}
}

В ubuntu 8.10 такой путь не проходит, так как в дистрибутив включен нерабочий mysql-connector-net. (см. баг https://bugs.launchpad.net/ubuntu/+source/mysql-connector-net-5.0/+bug/292477)

Чтобы установить его на 8-ке, надо
1. скачать файл mysql-connector-net-5.2.6-noinstall.zip с http://dev.mysql.com/downloads/connector/net/5.2.html,
2. распаковать архив
3. переименовать файл mysql.data.dll в MySql.Data.dll
4. Из директории, где лежит библиотека, выполнить gacutil /i MySql.Data.dll

После чего можно добавлять библиотеку в  референсы (только добавлять надо из директории)




 

Страница сгенерирована за 0.017 секунд. Запросов: 22.