2016-04-18 3 views
1

Я пытаюсь запустить запрос на обновление на сервере db через команду bash. я должен обновить поле IP (который сортируется как строка), но я получаю ошибку синтаксиса ...Обновление таблицы MYSQL с помощью скрипта BASH дает ошибку синтаксиса

ssh [email protected] "/usr/local/mysql/bin/mysql -D SMARTPARK -u parkuser -ppass -e 'update client SET online=0 where client_ip='192.168.42.11''" 

Я получаю как ошибка

ERROR 1064 (42000) в строке 1: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «.42.11» по строке 1

который является ошибкой?

+2

Существует разница между ценой и двойными кавычками. Использовать '' клиент обновлений SET онлайн = 0, где client_ip = '192.168.42.11' "' –

+0

На самом деле вам нужно чередовать между '' 'и' '', чтобы убедиться, что вы не убежите от своего сценария –

ответ

1

Попытайтесь избежать символа " с \", чтобы убедиться, что вы не уходите от строки, которую вы отправляете в свою БД.

Других слов, попытайтесь поместить следующее в файле Баша вы исполняющий:

ssh [email protected] "/usr/local/mysql/bin/mysql -D SMARTPARK -u parkuser -ppass -e \"update client SET online=0 where client_ip='192.168.42.11'\"" 
+0

ok, у меня нет больше ошибка, но команда выглядит так, как будто я запустил команду -h, потому что я вижу всю подсказку справки и запрос не сделан ... – besmart

+0

@besmart Не могли бы вы попробовать снова с предложением моего последнего редактирования? –

+0

, чтобы перейти к последнему праву возвращает мне ошибку синтаксиса – besmart

Смежные вопросы