2016-12-22 1246 views
0

我們設置了一堆Drupal環境,我們從中央服務器向它們發送命令。當從該服務器發送命令他們在這個格式 -Drupal網站中簡單查詢的SQL查詢錯誤

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等),所以我不認爲問題是與實際的別名。

有沒有人有任何想法,爲什麼會發生?

編輯 - 當傳遞--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" 

對於多站點的Drupal其中:

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文件夾和databasename是在settings.php – Fky

+0

陣列的關鍵仍然沒有爲我工作。我用更多的信息更新了這個問題,並用另一種我嘗試過的方法發現了另一個錯誤。你能檢查一個嗎? –