Не знаю как это коротко обозвать
Короче, есть программа, она работает на локальной БД MS SQL Server 2000. Всё зашибись Встал вопрос сделать, чтобы она работала с БД, которая стоит на другой машине под Linux (MySQL), т.к. сервер уже есть под управлением Linux, а ради БД заводить еще одну машину — не рационально. С MS SQL Server 2000 я работаю через ADO.
Собственно вопрос: как я из под винды могу администрить эту БД? Есть адрес машины, пользователь и пароль. Могу ли я это сделать через SQL Server Enterprise Meneger (сомневаюсь)? Или мне надо себе еще и MySQL устанавливать? Если надо, то где его можно скачать?
Здравствуйте, ShurikEv, Вы писали:
SE>Не уже ли никто не работал на .Net1.1 с MySQL и нет средств администрирования с MySQL из Винды БД, которая находится на другом компе под Linux?
Много кто работал, наверное, просто очень сложно не найти ответ на эти вопросы самостоятельно, я думаю...
Клиенты бесплатные виндовские для MySQL — пожалуйста, например MySQL-Front или SQLyog. Последний мне нравится больше и багов в нём поменее. В гугл.
Коннект из .net — аналогично. Либо ODBCConnection с предварительной установкой ODBC-драйвера, либо что-нибудь нативное. И то, и другое обретается на сайте www.mysql.com. Платные нативные тоже есть. В гугл же.
Re: Работа с MySQL...
От:
Аноним
Дата:
19.03.06 07:44
Оценка:
Спасибо.
Пока только один затык, не могу указать порт.
Объясняю Насколько мне известно, чтобы указать порт, по которому надо конектится, надо в коннекшион стринг написать "data source=адрес,порт;"
Через SQLyog удалось удачно подконектится к БД, а вот через .NET приблуду от MySQL не получается
Что я делаю не так?
Здравствуйте, ShurikEv, Вы писали:
SE>Не уже ли никто не работал на .Net1.1 с MySQL и нет средств администрирования с MySQL из Винды БД, которая находится на другом компе под Linux?
Из интереса сам попробовал, поставил, собрал пример — работет
Но пришлось попотеть, поразбиратся с правами
По умолчанию MySQL не пускает пользователей с других компов, посему надо сделать:
mysql -u user -p
PASSWORD: mysql> grant all privileges on db.* to 'USER'@'COMP'; mysql> flush privileges;
Причем вместо 'USER'@'COMP' надпись 'USER'@'192.168.0.68' не прошла...
Получилось вот так: 'USER'@'%' — то бишь со всех компов.
Версия MySQL 5.0.10a-beta-nt
Re: Работа с MySQL...
От:
Аноним
Дата:
19.03.06 08:41
Оценка:
Может я что-то не понимаю, что значит права
SQLyog спокойно подконектился к БД (значит доступ есть), а из программы не получается
GSA>По умолчанию MySQL не пускает пользователей с других компов, посему надо сделать: GSA>mysql -u user -p GSA>PASSWORD: mysql>> grant all privileges on db.* to 'USER'@'COMP'; mysql>> flush privileges;
тут даж правильней так:
grant all privileges on db.* to 'USER'@'%' identified by 'PASS';
Здравствуйте, ShurikEv, Вы писали:
SE>Может я что-то не понимаю, что значит права SE>SQLyog спокойно подконектился к БД (значит доступ есть), а из программы не получается
Т.е. используется Connector/Net 1.0 ?
А пример, который с ним идет, работает?
Re[2]: Работа с MySQL...
От:
Аноним
Дата:
19.03.06 09:15
Оценка:
Да, используется Connector/Net 1.0.
Использую как раз пример, но я что-то там не увидел как порт задаётся, поэтому ручками писал {Сервер,Порт}. Но он на эторугается, говорит что не правильно имя Сервера введено Может стоит что в исходниках поменять?
Здравствуйте, ShurikEv, Вы писали:
SE>Да, используется Connector/Net 1.0. SE>Использую как раз пример, но я что-то там не увидел как порт задаётся, поэтому ручками писал {Сервер,Порт}. Но он на эторугается, говорит что не правильно имя Сервера введено Может стоит что в исходниках поменять?
Порт задается через ConnectionString, которая объявлена в коде Form1::connectBtn_Click, в твоем случае ее надо модифицировать так:
server={0};port=3306;user id={1}; password={2}; database=mysql; pooling=false;
Но и еще есть одна проблема, русскую кодировку (cp1251) просмотреть не удалось, думаю и работать с ней будет проблематично...
Дописывание:
server={0};port=3306;user id={1}; password={2}; database=mysql; pooling=false; charset=cp1251;
не помогает!
Re[3]: Работа с MySQL...
От:
Аноним
Дата:
19.03.06 09:39
Оценка:
Спасибо
Я огадывался, что надо было написать что-то вроде port=3306; но почему-то смелости не хватило Ограничелся поиском по хелпу, который ничего не дал
Насчёт кодировки: по русски не понимает что ли? Или только cp1251?
Здравствуйте, ShurikEv, Вы писали:
SE>Спасибо SE>Я огадывался, что надо было написать что-то вроде port=3306; но почему-то смелости не хватило Ограничелся поиском по хелпу, который ничего не дал SE>Насчёт кодировки: по русски не понимает что ли? Или только cp1251?
В моем случае не понимает cp1251... Может какую другую подцепит..
Не понимание проявляется в том что он не правильно показывае русские, а в случае апдейта вместо русских в таблице появляются одни вопросики. Хотя везде, где нашел, поставил cp1251 (на базу, на таблицу, на поле и в connection string).
Здравствуйте, ShurikEv, Вы писали:
SE>Спасибо SE>Я огадывался, что надо было написать что-то вроде port=3306; но почему-то смелости не хватило Ограничелся поиском по хелпу, который ничего не дал SE>Насчёт кодировки: по русски не понимает что ли? Или только cp1251?
Ну, 1251 достаточно русская, а вообще на www.mysql.ru в разделе FAQ написано, какие переменные куда выставить, чтобы русский пошёл нормально. Ибо latin1 по умолчанию.
Re[4]: Работа с MySQL...
От:
Аноним
Дата:
27.03.06 04:59
Оценка:
Вроде заработало. Пришлось под это дело код немного переделать:
MySql.Data.MySqlClient.MySqlConnection SQL = ...;
using(MySql.Data.MySqlClient.MySqlCommand cmd = SQL.CreateCommand())
{
cmd.CommandText = "INSERT INTO tObject (typeID,nameObj)"
+ "VALUES (@pTypeID,@pName)";
cmd.Parameters.Add("@pTypeID",MySqlDbType.Int32).Value = ID;
cmd.Parameters.Add("@pName",MySqlDbType.String,24).Value = nameTypeObj;
.......
}
Не в какую не хочет кушать значения параметров
Пришлсь заменить на
using(MySql.Data.MySqlClient.MySqlCommand cmd = SQL.CreateCommand())
{
cmd.CommandText = "INSERT INTO tObject (typeID,nameObj)"
+ "VALUES ("+ID.ToString()+",'"+nameTypeObj+"')";
.......
}
Кто-нибудь знает как это привести к первому виду, а то у меня всё не получается заставить её работать: вместо значений пишет в ячейки NULL