Задавайте вопросы, мы ответим
Вы не зашли.
Друзья мои, приветствую!
Столкнулся с, казалось бы, банальной проблемой.
Есть MySQL (сервер на Linux), доступ на который только через PHP myAdmin и есть MSSQL (на Windows), также с ограниченным доступом.
Есть задача: раз в день апдейтить данные из одной таблицы из MSSQL в аналогичную таблицу (структуры таблиц совпадают) в MySQL.
Возможности установки линка на стороне MSSQL, создание доп. триггеров или чегото подобного нет.
Есть возможность установки "чего то подобного" на MySQL
Банальный вопрос - чего именно ?
Есть гостевая учетка на MSSQL и есть root в PHPmyAdmin для MySQL.
Я так понимаю, что через cron на сервере с Linux мы создаем Job'ы с помощью которых и выполняем этот запрос. Однако, ведь так просто две эти СУБД не подружишь ? Что необходимо установить на сервер с MySQL, чтобы он мог через гостевую учетку "забирать" данные из MSSQL ?
Заранее благодарен за ответ!
Неактивен
Через ODBC-коннектор можно ведь и к mssql и к mysql дотянуться, поразмышляйте в этом направлении.
Неактивен
Правильно ли я понимаю, что ODBC-коннектор мы ставим на стороне MySQL и через него "идем" на MSSQL ? (прошу прощения совсем уж за неосведомленность )
Неактивен
Скорее наоборот, см.
http://sqlinfo.ru/forum/viewtopic.php?id=4641
и
http://sqlinfo.ru/forum/viewtopic.php?id=376
Неактивен
quende написал:
Возможности установки линка на стороне MSSQL, создание доп. триггеров или чегото подобного нет.
Т.е. возможности подключить таблицы MySQL как связанные в MSSQL у вас нет?
Тогда без использования третьих программ не обойтись. Поправьте кто, если не прав.
Например, на Linux сервере вы можете по крону запускать php скрипт, который будет брать данные из MSSQL и заносить их в MySQL.
Неактивен
Спасибо за ответы.
Возможности подключить таблицы как связанные - нет.
Я к этому и веду, чтобы запускать некий скрипт - нужна связь, я же не могу в скрипте написать чистый SELECT из MSSQL точнее я то могу, но работать не будет
ODBC - ставится на сервер с MSSQL, так вот есть ли некий драйвер/коннектор, для установки его как раз на сервер с MySQL ? Читал про некую команду на php, mssql_connector с параметрами, однако его тоже необходимо устанавливать/подключать, поправьте если я не прав.
Пробовал загружать csv по расписанию, однако, как я понял, LOAD DATA INFILE в процедуре выполнятся не может, поэтому этот вариант тоже отпадает.
Странно что со стороны MSSQL есть такой коннектор, а с MySQL для подключения к SQL некоего "стандартного" коннектора нет ?
Неактивен
quende написал:
Я к этому и веду, чтобы запускать некий скрипт - нужна связь, я же не могу в скрипте написать чистый SELECT из MSSQL точнее я то могу, но работать не будет
ODBC - ставится на сервер с MSSQL, так вот есть ли некий драйвер/коннектор, для установки его как раз на сервер с MySQL ? Читал про некую команду на php, mssql_connector с параметрами, однако его тоже необходимо устанавливать/подключать, поправьте если я не прав.
У вас должен быть настроен php для работы с mssql, а далее
mssql_connect()
mssql_query( SELECT из mssql )
про особенности не скажу, т.к. сам такое не делал, но в сети есть масса руководств с примерами (в том числе инструкции по настройке php).
quende написал:
Пробовал загружать csv по расписанию, однако, как я понял, LOAD DATA INFILE в процедуре выполнятся не может, поэтому этот вариант тоже отпадает.
LOAD DATA INFILE не может выполняться в хранимых процедурах и событиях MySQL, но если у вас есть csv файл, то вы можете запускать по крону php скрипт, который будет делать LOAD DATA INFILE. Имхо, это самый простой путь решения.
Неактивен
vasya написал:
LOAD DATA INFILE не может выполняться в хранимых процедурах и событиях MySQL, но если у вас есть csv файл, то вы можете запускать по крону php скрипт, который будет делать LOAD DATA INFILE. Имхо, это самый простой путь решения.
Вот и я так подумал. Поскольку с установкой доп ПО на сервер с MySQL "все сложно" .
Получается так, что никакого стандартного коннектора, чтобы "залезть" из MySQL в MSSQL нет ?
При этом, ODBC, который на стороне MSSQL - как раз скорее ближе к стандартным. Что же это за ущемления то такие ?
Неактивен
quende, в клиент-серверной терминологии MySQL и MSSQL - это сервера, поэтому задача подключения одного к другому сформулирована некорректно. Правильно сказать, что требуется клиент, способный подключиться и к MySQL и к MSSQL. PHP это может при условии установки mssql-коннектора. Так как речь о клиентском приложении, не обязательно его ставить на тот же физический сервер (здесь другое значение слова сервер), на котором стоит MySQL. Можно поставить на машину с MSSQL или на вирутальную машину рядом.
Неактивен
ODBC это и есть стандартный интерфейс для доступа к базам данных различных производителей (orecle, mssql, mysql, postgresql, ... )
То, что внутри mssql есть возможность работы с внешними источниками данных (например, связанные таблицы mysql) это особенности реализации mssql. Т.е. ущемлений нет, просто в mssql богаче функционал.
Неактивен
Друзья мои, спасибо за развернутые ответы.
Будем бороться дальше
Неактивен