Командная строка MySQL Script

Попытка выяснить несколько способов обойти это, и вернуться к квадрату 1.

Мой пакет хостинга, по-видимому, имеет только программное обеспечение для поддержки PHP, SendMail и Perl из командной строки, но мне нужно выяснить, как лучше всего запустить скрипт SQL, будь то из командной строки как скрипт MySQL (если это возможно) или в сценарии PHP или Perl.

Я пробовал следующий скрипт в PHP-скрипте, но LOAD DATA LOCAL INFILE не позволяет ему работать должным образом, поэтому я озадачен более простым решением … но на этом этапе я возьму любое!

<?php
$con = mysqli_connect('xxx.xxx.xxx.xx', 'xxxx-xxxxxxx', 'xxxxxxxxx', 'xxxx-xxxxxxx');
mysqli_query($con, "LOAD DATA LOCAL INFILE 'http://www.mydomain.co.uk/datafeed.csv' REPLACE INTO TABLE product_feed FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS");
mysqli_close($con);

Командные строки очень новы для меня, и, если честно, мне нужно только знать, как именно я создаю задание по расписанию / задание cron для скрипта обновления.

Может кто-нибудь мне помочь

0

Решение

Откуда ты это делаешь? я предполагаю www.mydomain.co.uk ваш сервер, и вы обращаетесь к нему с внешнего клиента?

Основное различие между LOAD DATA а также LOAD DATA LOCAL является то, что последний копирует файл с клиента во временный файл на сервере, прежде чем продолжить как обычный LOAD DATA команда с использованием скопированного файла; но и клиент MySQL, и сервер должны быть явно созданы для его включения. Поскольку это потенциальная дыра в безопасности, я бы очень сомневался, был ли сервер построен таким образом.

Ни один из них не примет HTTP-URL — вам нужно указать дорожка. Если вы используете LOAD DATA указав только пустое имя файла, сервер будет искать его в каталог базы данных по умолчанию; или если это родственник путь с компонентом каталога, то сервер обрабатывает его как относительный каталог данных; Конечно, абсолютные пути используются буквально.

Как заставить это работать, зависит от того, какие каталоги сервера вы можете записать, чтобы сервер MySQL также мог их прочитать. Мало что можно получить от LOAD DATA LOCAL как вы можете скопировать файл CSV самостоятельно и иметь больше контроля над ним. Наиболее вероятным кандидатом является каталог данных, и вы можете узнать, где он используется

SHOW VARIABLES WHERE Variable_Name = "datadir"

Затем, если вы положите свой файл myfile.csv в этот каталог, вы можете использовать

LOAD DATA INFILE "./myfile.csv" ...

заставить сервер загрузить таблицу из вашего файла.

Надеюсь, это поможет.

0

Другие решения

Других решений пока нет …