-
Подскажите, как из Делфи получить доступ к MySQL на сервере?
Существуют ли готовые компоненты?
-
уточню: речь идет про веб сервер.
-
ADO к примеру.
> доступ к MySQL на сервере
А что "доступ к MySQL на сервере" это что-то особенное?
-
> Zilog (14.09.08 00:31) [1]
>
> уточню: речь идет про веб сервер.
Ааа. Тогда ты не совсем туда послал вопрос.
-
а куда его следует послать, что бы получить ответ?
-
> Zilog (14.09.08 00:39) [4]
>
> а куда его следует послать, что бы получить ответ?
Модераторы знают.
:)
Но вообще-то "Начинающим" самая лучшая конференция!
-
Ну, будем ждать пока перенесут. Я там искал, что то глухо.
-
А ктоже тебе даст доступ к web серверу хостинг провайдера?
-
> Zilog (14.09.08 00:27)
> Подскажите, как из Делфи получить доступ к MySQL на сервере?
>
>
> Существуют ли готовые компоненты?
> <Цитата>
>
>
> Zilog (14.09.08 00:31) [1]
> уточню: речь идет про веб сервер.
Ответ "никак".
-
> Подскажите, как из Делфи получить доступ к MySQL на сервере?
Как вариант - использовать OLE - напр. MyOLEDB3
-
> Как вариант - использовать OLE - напр. MyOLEDB3
по 80-му порту???
->
> уточню: речь идет про веб сервер.
-
> > Как вариант - использовать OLE - напр. MyOLEDB3
> по 80-му порту???
По умолчанию - предлагает 3306. Можно установить и другой.
-
> VICTOR_ (15.09.08 11:41) [11]
Третий раз повторяем
> > уточню: речь идет про веб сервер.
-
да толку-то от этого уточнения.
хоть про ftp сервер уточняй.
-
> Поросенок Винни-Пух © (15.09.08 12:31) [13]
> да толку-то от этого уточнения.
> хоть про ftp сервер уточняй.
А подумать над уточнением и [7] прочитать...
-
> Можно установить и другой.
можно то можно, но у веба открыт единственный и он занят собственно вебом... хотя и "установить другой" тоже проблема, с провайдером просто так не договоришься... тебе получается установят, а другим значится "обрежут". так? как ты себе это мыслишь? это не с локальным компом, или "внутрисетевым сервером" (типа машина на соседнем столе, кроме тебя никем не используемая) баловаться...
> да толку-то от этого уточнения.
в смысле все одно не дойдет?
-
> да толку-то от этого уточнения.
в смысле все одно не дойдет?
например:
- чувак имеет апач + пхп
- чувак имеет iis и asp.net
- iis и isapi расширение на D7
а то что надо "на web сервере", так это как "радиостанция на бэтээре"
-
> А подумать над уточнением и [7] прочитать...
> > Можно установить и другой.
> можно то можно, но у веба открыт единственный и он занят
> собственно вебом... хотя и "установить другой" тоже проблема,
> с провайдером просто так не договоришься... тебе получается
> установят, а другим значится "обрежут". так? как ты себе
> это мыслишь? это не с локальным компом, или "внутрисетевым
> сервером" (типа машина на соседнем столе, кроме тебя никем
> не используемая) баловаться...
>
> > да толку-то от этого уточнения.
> в смысле все одно не дойдет?
Непонятно что и до кого должно дойти?
Речь в топике не идет кто-кому даст/не даст доступ на Web-сервер. Речь идет о доступе к MySQL.
-
> Подскажите, как из Делфи получить доступ к MySQL на сервере?
Так же как и к любой другой бд
> Существуют ли готовые компоненты?
Да
-
> Речь идет о доступе к MySQL.
> [1] уточню: речь идет про веб сервер.
-
dbexpress
-
> > Речь идет о доступе к MySQL.
> > [1] уточню: речь идет про веб сервер.
ОК. Распишем подробнее. Веб-сервер - это сервер, принимающий HTTP-запросы от клиентов, по крайней мере я так понимаю и так пишет Википедия.
Пример организации работы.
В локальной сети стоит Web-сервер напр. на FreeBsd. Там крутится MySQL, Apache, Php, сайт, форум и т.п. Web-сервер - имеет выход по выделенной линии к провайдеру. Соответственно сайт, форум и т.д. видны извне. Администратор локальной сети дал доступ для обновлений к необходимому порту для MySQL и запретил доступы извне. База на MySQL обновляется через Delphi + MyOLEDB3.
Что в этой схеме работает не так и не соответствует теме топика?
-
> Веб-сервер - это сервер, принимающий HTTP-запросы от клиентов, по крайней мере я так понимаю и так пишет Википедия.
верь ей. по крайней мере в этом случае, и скажи тогда такие настройки MySQL (допустим провайдера уломали) которые бы обеспечивали работу клиента с ним (и его настройки/компоненты) с базой на нем по "HTTP-запросам".
> В локальной сети стоит Web-сервер напр. на FreeBsd.
в локальной сети, как уже сказал можешь играться как хочешь, но для тебя это будет не веб сервер, это будет машина в локальной сети в ролью веб сервер-а.
вот если к нему у кого то доступ извне, вот для него это "веб сервер".
> Там крутится MySQL, Apache, Php, сайт, форум и т.п.
и ко всему этому счастью доступ только программам выполняемым непосредственно на нем же. принцип такой.
блин, если ты раскроешь сервер на файловый доступ, то это уже будет файл сервер, если что-то большее это будет например сервер общего назначения, но речь то про конкретно "Web-сервер".
> Соответственно сайт, форум и т.д. видны извне.
по 80 му порту. т.е. по HTTP. (а также ftp если протокол разрешён. обычно и этого не бывает)
вообще к чему спор, просто достань что нибудь с сервера где базируется дельфимастер... наверняка там есть mysql (это уже считай стандарт), и наверняка есть тестовые базы. приводишь здесь настройки, клиентский запрос так чтобы все могли убедится, и все. ты выиграл.
-
> в локальной сети, как уже сказал можешь играться как хочешь,
> но для тебя это будет не веб сервер, это будет машина в
> локальной сети в ролью веб сервер-а.
> вот если к нему у кого то доступ извне, вот для него это
> "веб сервер".
Ну значит мы по-разному понимаем понятие Веб-сервер. Мое понимание приведено в п.1.
> блин, если ты раскроешь сервер на файловый доступ, то это
> уже будет файл сервер, если что-то большее это будет например
> сервер общего назначения, но речь то про конкретно "Web-
> сервер".
Да не нужен файловый доступ.
Нужно только
Provider: MySQLProv
Location: server_name
Data Source: database_name
User: user_name
Password: password
> просто достань что нибудь с сервера где базируется дельфимастер.
Мы же рассматриваем не задачу - возможность вытянуть из любой MySQL базы всемирной паутины любые данные, не имея на то прав доступа.
> вообще к чему спор
Спор действительно ни к чему. Вы просто взяли как аксиому: "Провайдер доступа не даст. У Вас нет вариантов". В последнем посте я привел Вам подробное описание возможного варианта организации работы.
-
Нужно только
Provider: MySQLProv
Ключевой вопрос: Кому нужно провайдер?
-
> Ключевой вопрос: Кому нужно провайдер?
Подробнее о параметрах, их необходимости и примеры использования Вы можете прочитать в документации к MyOLEDB3.
-
Расскажи это апачу на юниксе. Что такое ОлеДБ.
-
> Расскажи это апачу на юниксе. Что такое ОлеДБ.
Вы читали предыдущие посты и документацию по MyOLEDB3?
MyOLEDB3 устанавливается на Windows машине. Там же где и Delphi. На другой машине ( с установленной напр. FreeBsd) в локальной сети крутиться Web-сервер - доступный извне для HTTP-запросов. В Delphi создаете OLE объект, производите инициализацию MySQL и работаете.
-
> Там же где и Delphi
Читать. "Там же где и Ваше приложение"
-
А если в этой комбинации оставить машину с делфи и с оле-дб провайдером, и убрать машину с веб сервером, то что получится?
-
> Мы же рассматриваем не задачу - возможность вытянуть из любой MySQL базы всемирной паутины любые данные, не имея на то прав доступа.
"всемирная паутина" это и есть множество веб серверов, по которым мы скитаемся. нет доступа на этот, возьми любой другой где сможешь получить, и приведи пример - как открыть MySQL для клиентов по http (сам дал определение вебсерверу).
> Вы просто взяли как аксиому: "Провайдер доступа не даст. У Вас нет вариантов".
немного не так, а так - "провайдер доступа не даст, а если даже и даст (ну может он твой знакомый) то это уже будет не веб сервер, а что то другое".
> Вы можете прочитать в документации к MyOLEDB3.
OLEDB он на клиенте, под виндой, тебе же говорят/говорили о другом провайдере, том который держит у себя веб сервер.
-
> нет доступа на этот, возьми любой другой где сможешь получить,
> и приведи пример - как открыть MySQL для клиентов по http
> (сам дал определение вебсерверу).
Должен быть только открыт для локального доступа порт 3306.
IMHO - не являясь системным администратором и не будучи глубоким спецом в этой области.
> "провайдер доступа не даст, а если даже и даст (ну может
> он твой знакомый) то это уже будет не веб сервер, а что
> то другое".
В описанной мною схеме - роль провайдера - не хостинг, а предоставление доступа в Интернет. Хостинг осуществляется на Web-сервере в локальной сети предприятия.
> OLEDB он на клиенте, под виндой, тебе же говорят/говорили
> о другом провайдере, том который держит у себя веб сервер.
Еще раз повторюсь - MyOLEDB3 без разницы что стоит на Web-сервере (Unix, Linux, Windows и т.п.). Доступ идет по имени сервера(либо IP) и др. параметрам, описанным в данном топике и в документации.
-
> А если в этой комбинации оставить машину с делфи и с оле-
> дб провайдером, и убрать машину с веб сервером, то что получится?
Ничего не получиться. Если Web-сервера нет - куда и какой MySQL базе будешь коннектиться? Ну для тестов - можешь установишь локально (напр. Денвер). Но мы же рассматриваем рабочий вариант.
-
Ничего не получиться. Если Web-сервера нет - куда и какой MySQL базе будешь коннектиться?
Я коннекчусь к серверу MySQL.
-
> VICTOR_ (15.09.2008 16:11:27) [27]
Что делает Дельфи на сервере?
-
спрошено про доступ к майскл с веб сервера.
ок.
стоит у меня фасттрак но новеле.
рядом стоит mysql
беру я твой замечательный оледб провайдер и куда его пихаю?
-
> Я коннекчусь к серверу MySQL.
В моей схеме нет такого сервер (компьютера).
Есть 2 компьютера
1.Сервер приложений (windows) - там установлено мое приложение+MyOLEDB3
2.Web-сервер - там установлен условно говоря FreeBsd+Apach+Php+MySQL)
-
>
> Что делает Дельфи на сервере?
См.
VICTOR_ (15.09.08 16:13) [28]
> Там же где и Delphi
Читать. "Там же где и Ваше приложение"
> В Delphi создаете OLE объект, производите инициализацию
> MySQL и работаете.
Тут под работаете естественно имелось ввиду - создание программы.
-
В исходном вопросе есть только web сервер.
В моей схеме нет такого сервер (компьютера).
Это как раз никого не интересует.
-
> спрошено про доступ к майскл с веб сервера.
> ок.
> стоит у меня фасттрак но новеле.
> рядом стоит mysql
> беру я твой замечательный оледб провайдер и куда его пихаю?
>
К сожалению не могу точно представить структуру Вашей сети. Подробнее о параметрах подключения как я уже говорил читайте в документации к MyOLEDB3
-
Зачем тебе структура моей сети?
Ты когда на мастеров делфи идешь, сильно заморачиваешься над структурой сети хостера?
-
> Зачем тебе структура моей сети?
> Ты когда на мастеров делфи идешь, сильно заморачиваешься
> над структурой сети хостера?
Предложен вариант решения задачи автора топика без претензии на универсальность на все случаи жизни.
Если Вы хотите универсальное решение на все случаи жизни для любых сетей и т.п.- то предложите свой вариант.
-
Подскажите, как из Делфи получить доступ к MySQL на сервере?
Либо использовать библиотеки доступа к mysql, но тогда web сервер здесь лишнее звено и очевидно, что вариант к вопросу не имеет отношения.
Либо пользоваться интерфейсом, предоставляемым web сервером. тогда любые библиотеки доступа лишние. в том числе оледб провайдеры.
-
> К сожалению не могу точно представить структуру Вашей сети.
зачем ее представлять? представь лучше web сервер, и разберись что оттуда выходит, а остальное... да плевать, это только запутывать себя.
> Подробнее о параметрах подключения как я уже говорил читайте в документации к MyOLEDB3
опять же зачем? если мы знаем что с сервера клиентам доступен один протокол, и один порт, MySql (сервер) по этому протоколу не работает... каким чудом это обстоятельство обойдут компоненты на клиенте? они волшебные, а документация по ним это список заклинаний?
> Предложен вариант решения задачи автора топика без претензии на универсальность на все случаи жизни.
ну настолько "без претензий", что вероятность используя его чтото решить = 0.0%
> то предложите свой вариант.
а вариантов то и нет. программе нужно выполняться на сервере, только так и никак иначе, чтобы иметь доступ к внутренним ресурсам (MySql в данном случае тоже внутренний). т.е. регистрируешься на нужном веб сервере, кладешь туда свои скрипты (на php например, раз мы договорились, что "он там крутится". но не на дельфи раз уж у нас "FreeBsd", но вообщето бывают сервера и на винде), вот у этих скриптов доступ к MуSql есть, они сформируют web страничку с данными базы и Апачь отранслирует ее в сеть "по http запросу"...
страничку в принципе можно не формировать, ты можеш там на этих скриптах написать свой сервер для работы с MуSql (можно просто передавать команды, назад данные), а на клиенте будеш взаимодействовать уже с ним, а не MуSql, и никакие компоненты (типа MyOLEDB3) тебе не помогут, т.к. это будет только твой "велосипед". врядли ктото озабачивался подобной схемой и сделал все это на уровне компонент.
-
> sniknik © (16.09.08 09:03) [43]
К сожалению, Вы очевидно не удосужились ни перечитать мои посты, ни перечитать документацию по MyOLEDB3. Очевидно Вас этот вопрос не интересует.
Возможно, этот вариант решения заинтересует автора топика или других посетителей форума.
У Вас на все пояснения 2 ответа
- провайдер доступа не даст (только зачем в моей схеме этот доступ от провайдера нужен??)
- MyOLEDB3 работать не будет (голословное заявления, очевидно, даже не читая документацию)
Насчет вероятности - 0.0% - Вы явно загнули. Вариант вполне рабочий.
Реально этот вариант в таком виде проработал в реализованном (рабочем) проекте не менее 1 года (далее проект был закрыт по не относящимся к теме причинам). Задача была следующая - обновление справочника Web-магазина (на MySQL)
В чем проблема?
1. В развертывании Web-сервера в локальной сети, а не у провайдера?
У нас сайт, форум (FreBSD + PHP+ Apache+MySQL) так работает уже около 5 лет. И я не думаю что тут есть какая-то проблема, кроме как найти хорошего администратора и нормальную выделенную линию. Аналогично работа была поставлена и в описанном мной реализованном проекте.
Наверняка, полно других фирм так работает.
2. В MyOLEDB3? Так я же Вам пояснил. Все работает и проблем нет. Этот OLE-сервер специально для такого доступа к MySQL и предназначен. И скачивался, по крайней мере мной, с официального сайта MySQL.
ИМНО - нужен доступ только к порту и только для MySQL. Причем можно установить напр. только для определенного IP. Повторю - это вопрос администрирования.
3. В надежности и скорости? У провайдера хостинг по определению надежнее, чем развернутый Web-сервер в локальной сети предприятия. По скорости доступа - тоже у провайдера она будет по определению выше. Но задача-задаче рознь. Поэтому я и не претендую на универсальность. Если у Вас не планируются тысячи запросов в секунду(минуту и т.п.), то Вам может подойти и такой вариант.
4. И на самый конец. Я описывал Вам схему, не зависящую от провайдера - он дает только доступ в Интернет. При желании наверняка можно найти провайдера, который на своем хостинге предоставит Вам необходимый доступ для Вашей Базы. Лично я такой вариант не пробовал - но, думаю, он вполне реален.
-
> VICTOR_ (16.09.08 11:28) [44]
Ты вообще-то вопрос автора читал? А то так многа букав и всё не по делу...
-
> Ты вообще-то вопрос автора читал? А то так многа букав и
> всё не по делу...
Я как раз вопрос чудесно прочитал.
И предложил свой вариант решения.
Другие варианты сводятся к следующему
- никак
- стандартными или другими компонентами доступа
- реализацией интерфейса или скриптов на самом Web-сервере
Они тоже имеют право на жизнь. Пусть автор топика и посетители форума решают.
-
Если использовать твой чудесный провайдер, то из вопроса выпадает сам веб сервер, как лишнее звено.
То есть твой вариант никак не связан с темой вопроса.
Ты отвечаешь на вопрос, который здесь никто не задавал.
-
> Если использовать твой чудесный провайдер, то из вопроса
> выпадает сам веб сервер, как лишнее звено.
Web-сервер - не лишнее звено. На нем согласно моей схемы и расположен MySQL, к которому хочет получить доступ автор топика.
> Ты отвечаешь на вопрос, который здесь никто не задавал.
ОК. У меня тоже стало складываться мнение что в этой теме только я один не при делах, а все остальные отвечают четко и конструктивно по теме вопроса, который они внимательно прочитали. :)
-
На нем согласно моей схемы
Твоя схема к теме вопроса не имеет никакого отношения
-
На нем согласно моей схемы и расположен MySQL, к которому хочет получить доступ автор топика.
Вот к примеру бесплатный хостинг Jino.net с mysql
Пойди примени к нему свою чудесную схему.
-
> Вот к примеру бесплатный хостинг Jino.net с mysql
>
> Пойди примени к нему свою чудесную схему.
Если Вы внимательно читали мои посты, то я уже раза три писал, что данная схема не требует хостинга со стороны провайдера. И я изначально рассматривал другой вариант, чтобы не попасть в зависимость от того даст доступ провайдер или не даст. Хостинг осуществляется непосредственно на предприятии.
Кроме того я писал, что описанная схема не претендует на работоспособность на все случаи жизни.
Если провайдер Jino.net - даст необходимый доступ или пояснит как его настроить - то будет работать и на его хостинге. Если нет - то, естественно, работать через MyOLEDB3 не получиться.
Как я уже писал - я варианты с хостингом у провайдера не пробовал - в этом не было надобности.
К сожалению, пришел к окончательному выводу, что мои посты не читают или читают крайне невнимательно.
Если Вы убеждены, что предложенная схема - не работает - это Ваше право. Думаю с моей стороны нет смысла повторять в каждом посте, как схема работает и то, что она проработала в реальном проекте около 1 года.
Кого данная схема работы (как вариант работы) заинтересует, тот внимательно перечитав тему и соответствующую документацию, сможет решить свои задачи.
-
> Твоя схема к теме вопроса не имеет никакого отношения
Это я уже понял, повторять не надо :)
-
Если провайдер Jino.net - даст необходимый доступ или пояснит как его настроить - то будет работать и на его хостинге.
А если он при этом еще и выключит веб сервер, то все вдруг перестанет работать?
:))))
-
Если Вы внимательно читали мои посты
Делать мне нечего, как всякую ерунду внимательно читать.
-
слышь, мужик, у меня тут сомнения появились в связи с настойчивыми просьбами прочитать доку по MyOleDB3.
Ты часом не коммивояжер, распространяющий его?
-
> слышь, мужик, у меня тут сомнения появились в связи с настойчивыми
> просьбами прочитать доку по MyOleDB3.
Странная постановка вопроса. Этот OLE-сервер бесплатен.
Если люди задают вопрос/ответ по MS SQL Server - Вы их тоже считаете комивояжерами?
> Делать мне нечего, как всякую ерунду внимательно читать.
К сожалению, после данных слов продолжение с Вами дискуссии бесполезно.
-
Еще раз для тех кто в танке:
твое решение не имеет ни малейшего отношения к вопросу.
будет или не будет доступ к mysql через оледб никак не связан с работающим "там" вебсервером.
-
> Еще раз для тех кто в танке:
>
> твое решение не имеет ни малейшего отношения к вопросу.
> будет или не будет доступ к mysql через оледб никак не связан
> с работающим "там" вебсервером.
Автор вопроса пусть сам решает, чьими советами ему лучше воспользоваться и что даст ему больше пользы.
-
не, ты точно в танке
-
> не, ты точно в танке
Да я понял Ваш намек :). Я писал, что не являюсь глубоким специалистом в системном администрировании. Почитаю тему - сделаю для себе выводы.
Поверьте мне, с точки зрения автора вопроса - у меня ответ был дан точно по теме. Правда, не знаю, или он рассчитывал на изначально серьезное и кардинальное решение для своей задачи.
-
на изначально серьезное и кардинальное решение для своей задачи.
Чорт! Надо будет запомнить фразу. Для совещаний пригодится.
-
> Надо будет запомнить фразу. Для совещаний пригодится.
Главное, не опускать руки и не говорить сразу "никак".
Как правило механизмы решения таких типовых задач существуют. В свое время при решении данной задачи я был поражен, насколько ее можно быстро и достаточно эффективно реализовать и обеспечить приемлимый для заказчика результат.
-
забыл упомянуть про MyOleDb3
-
> про MyOleDb3
Еще бы рассказали как его в Linked Server проинициализировать.
А то у нас MySql база на хосте, так вот что-то никак не могу этот MyOleDb3 прописать. MS SQL Server (2005) как провайдера его видит, а вот дальше что-то никак. Уж мы его и так и эдак, а оно - "Cannot create an instance of OLE DB provider "MySqlProv" for linked server ...". Что и куда там прописывать надо? Сейчас через MySQL Connector / ODBC, но вот как-то через ODBC не хочется.
Хоть и оффтоп, ну так тут уже и так все как-то так ... может кто подскажет или укажет. :)
-
> Хоть и оффтоп, ну так тут уже и так все как-то так ... может
> кто подскажет или укажет. :)
Можешь попробовать другой OLEDB провайдер напр.
http://surfnet.dl.sourceforge.net/sourceforge/myoledb/myoledb-3.9.6.msiТестировал на локальном хосте под Windows(Денвер) - коннект идет нормально. Тестовый код
procedure TForm1.Button1Click(Sender: TObject);
var
ovConn : OleVariant;
begin
ovConn := CreateOLEObject('ADODB.Connection');
ovConn.Open('Provider = MySqlProv;'+
'Data Source = test1;'+
'Integrated Security = \"\";'+
'Password = 1;'+
'User ID = test1;'+
'Location = localhost;'+
'Extended Properties = \"\"');
end;
-
> VICTOR_ (16.09.08 19:42) [65]
Спасибо, завтра опробирую его.