2016-12-22 2 views
0

У нас есть множество настроек Drupal, и мы отправляем им команды с централизованного сервера. При передаче команд с сервера они находятся в этом формате -Ошибка запроса SQL в простых запросах на веб-сайте Drupal

drusha -v -d @website sql-query 'show tables;'

Однако я получаю ошибку -

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

Когда я иду на фактический сервер базы данных и вручную запускать команды , он отлично работает.

Я попытался переключить цитаты и удалить их вместе, вместе с удалением; в конце, но я получаю ту же ошибку каждый раз. Информация о базе данных, которую использует веб-сайт, верна. Любые другие команды запускаются с использованием этой функции псевдонимов (drush clear-cache и т. Д.), Поэтому я не думаю, что проблема связана с фактическим псевдонимом.

Есть ли у кого-нибудь идеи, почему это происходит?

EDIT - При переходе в --database = имя_базы_данный я получаю следующее сообщение об ошибке -

drusha -v -d @website sqlq -n "SHOW TABLES" --database=databasename

exception 'Drush\Sql\SqlException' with message 'Unable to find a [error] 
matching SQL Class. Drush cannot find your database connection 
details.' in 
phar:///usr/local/bin/drush/commands/sql/sql.drush.inc:588 
Stack trace: 
#0 phar:///usr/local/bin/drush/commands/sql/sql.drush.inc(426): 
drush_sql_get_class(NULL) 
#1 [internal function]: drush_sql_query('SHOW', 'TABLES') 
#2 phar:///usr/local/bin/drush/includes/command.inc(366): 
call_user_func_array('drush_sql_query', Array) 
#3 phar:///usr/local/bin/drush/includes/command.inc(217): 
_drush_invoke_hooks(Array, Array) 
#4 [internal function]: drush_command('SHOW', 'TABLES') 
#5 phar:///usr/local/bin/drush/includes/command.inc(185): 
call_user_func_array('drush_command', Array) 
#6 phar:///usr/local/bin/drush/lib/Drush/Boot/BaseBoot.php(67): 
drush_dispatch(Array) 
#7 phar:///usr/local/bin/drush/includes/preflight.inc(66): 
Drush\Boot\BaseBoot->bootstrap_and_dispatch() 
#8 phar:///usr/local/bin/drush/includes/startup.inc(325): 
drush_main() 
#9 phar:///usr/local/bin/drush/drush(114): drush_startup(Array) 
#10 /usr/local/bin/drush(10): require('phar:///usr/loc...') 

EDIT2 - После того, как некоторые более бесполезные, я получил его на работу с таблицами шоу, прилагая все внутри одной, а затем двойной кавычки и переключения команды я побежал. Прямо сейчас, это моя команда -

ssh -q <webserverip> sudo -u apache /usr/local/bin/drush --root=/var/www/html/wwwroot/website/docroot/ sql-query "'UPDATE users SET mail='[email protected]' WHERE uid>1'" 

Ошибка Сейчас я получаю -

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@host WHERE uid>1' at line 1 

Спасибо.

+0

Удаление цитат дает ту же ошибку, а также что-то вроде этого - '' show tables '; '. Какая цитата - это то, о чем вы говорите, и куда ее переместить? –

ответ

0

Вы должны использовать двойные кавычки без; выполнить команду в папке, где находится settings.php

drush -v -d sql-query "show tables" 

многоузловые Друпала:

drush -v -d sql-query "show tables" --database=websitedbname 

или

drush -v -d sql-query "show tables" --target=website 

https://drushcommands.com/drush-7x/sql/sql-query/

Кроме того, вы можете подключить вручную к базе данных (mysql или другое) и сделайте свой запрос.

+0

При попытке этого я все равно получаю сообщение об ошибке. Я просто добавил его к исходному вопросу –

+0

, вы должны быть в папке, где находится settings.php, а имя_базы - это ключ массива в settings.php – Fky

+0

Все еще не работал для меня. Я обновил вопрос с дополнительной информацией и другой ошибкой другого метода, который я пробовал. Не могли бы вы также проверить это? –

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

  • Нет связанных вопросов^_^