drush sql-sync: “The external command could not be executed due to an application error.”
Eingetragen von johny (98)
am 06.01.2018 - 15:00 Uhr in
am 06.01.2018 - 15:00 Uhr in
Hallo zusammen,
wenn ich drush sql-sync
ausführe, um meine Datenbank vom Server auf lokal zu kopieren, bekomme ich nach dem SSH-Login folgenden Fehler:
The external command could not be executed due to an application error.
Im Debug-Modus wird nach dem SSH-Login folgendes angezeigt:
Backend invoke: php
C:/Users/x/drupal-root/vendor/drush/drush/drush.php --backend=2 --verbose --debug --uri=localhost --root=/C/Users/x/drupal-root/web sql-conf --all 2>&1
php C:/Users/x/drupa-root/vendor/drush/drush/drush.php --backend=2 --verbose --debug --uri=localhost --root=/C/Users/x/drupal-root/web sql-conf --all 2>&1
The external command could not be executed due to an application error.
Error: no database record could be found for target @local
Returned from hook drush_sqlsync_sql_sync_validate
Command dispatch complete
Leider wird hier nicht genau spezifiziert, um was für einen Anwendungsfehler es sich genau handelt. Gibt es vielleicht irgendwelche Log-Dateien, wo ich nachschauen könnte?
- Anmelden oder Registrieren um Kommentare zu schreiben
Dir fehlt eine .my.cnf auf
am 10.01.2018 - 19:24 Uhr
Dir fehlt eine .my.cnf auf deinem Server
https://github.com/drush-ops/drush/issues/1505
https://drupal-tv.de
Drupal sehen und lernen
Es befindet sich bereits eine
am 11.01.2018 - 12:53 Uhr
Es befindet sich bereits eine my.cnf in /etc. Aber ich versteh den Post auf github nicht so ganz, was muss jetzt in der Datei stehen und wo soll sie liegen?
Nachtrag: So wie ich das verstehe, ist das problematisch, wenn eine extra Datei in /home existiert...
Also, liegen sollte sie in
am 11.01.2018 - 19:10 Uhr
Also,
liegen sollte sie in deinem heimatverzeichnis.
cd ~
und
enthalten muss sie
[client]
user="name deines mysql benutzers"
password="dein mysql passwort"
Hast du also beispielsweise mit phpmyadmin einen Nuttzer namens drupaluser und eine datenbank namens drupal erstellt musst du
drupaluser und das passwort dieses benutzers einsetzen.
Damit das funktioniert, braucht der Nutzer natürlich zugriff auf deine Datenbank. Die sollte er aber schon haben, da Drupal auf dem Server ja schon eingerichtet ist
Problematisch eine Doppelte datei nur dann, wenn in der my.cnf in /etc die direktiven von oben nicht auskommentiert sind. Die sollten aber in der regel gar nicht drin stehen
wenn du die Date erstellt hast sicherst du diese mit chmod 664 ~/my.cnf ab, damit der Nutzer und die Nutzergruppe, in der regel www-datga nur noch leseszugriff haben und keiner von außen die Daten auslesen kann.
Danach kannst du drush zum synchronisieren verwenden.
https://drupal-tv.de
Drupal sehen und lernen
Ich habe die Datei angelegt,
am 12.01.2018 - 00:39 Uhr
Ich habe die Datei angelegt, aber es kommt immer noch dieselbe Fehlermeldung. Woanders wurde ich darauf hingewiesen, dass es vll. mit dem lokalen Alias Problem gibt. Wenn ich
drush @local status
ausführe, kommen nur diese Angaben, also viel weniger als beidrush status
:PHP configuration : C:\x\xampp\php\php.ini
PHP OS : WINNT
Drush script : C:/Users/x/drupal-root/vendor/drush/drush/dr
ush.php
Drush version : 8.1.8
Drush temp directory : C:\Users\x\AppData\Local\Temp
Drush configuration : C:\Users\x\.drush\drushrc.php
Drush alias files : C:/Users/x/.drush/example.aliases.drushrc.php
änder deine aliase bzw die
am 13.01.2018 - 11:14 Uhr
änder deine aliase bzw die entsprechende drushrc mal hiernach ab,
https://www.drupal.org/node/1401522
https://drupal-tv.de
Drupal sehen und lernen
Ich kenne die Seite, ich habe
am 15.01.2018 - 14:18 Uhr
Ich kenne die Seite, ich habe sie als Vorlage für meine Datei genommen. Mein local Alias sieht so aus:
$aliases['local'] = array(
'uri' => 'mysite.localhost',
'root' => '/C/Users/x/drupal-root/web',
'path-aliases' => array(
'%drush' => '/C/Users/x/drupal-root/vendor/drush/drush',
'%dump-dir' => '/C/Users/x/.drush',
'%files' => '/C/Users/x/drupal-root/web/sites/default/files',
),
);
drush site-alias @self --full --with-optional
ergibt folgende Ausgabe:$aliases["self"] = array (
'root' => 'C:/Users/x/drupal-root/web',
'uri' => 'http://default',
'path-aliases' =>
array (
'%drush' => '/C/Users/x/drupal-root/vendor/drush/drush',
'%dump-dir' => '/C/Users/x/.drush',
'%files' => '/C/Users/x/drupal-root/web/sites/default/files',
'%site' => 'sites/default/',
),
);
Ich geh mal davon aus, dass
am 15.01.2018 - 16:37 Uhr
Ich geh mal davon aus, dass du deine Pfadangaben anpassen solltest. Du verwendest in der Array-variable %drush einen Linuxpfad beginnend mit dem Linux Wurzelverzeichnis / und in der Angabe deines Webroot einen Windowspfad C:/ m. Der muss aber auch C:\... lauten.
Wenn du die Pfadangaben an Dein Dateisystem angepasst hast solltest du noch deinen Live-Alias Posten, vielleicht enthält der auch einen Fehler.
https://drupal-tv.de
Drupal sehen und lernen
Die Schreibweise mit dem /C/
am 15.01.2018 - 17:16 Uhr
Die Schreibweise mit dem /C/ ist leider notwendig, weil sonst diese Fehlermeldung ausgegeben wird: "Der Befehl "'C:" ist entweder falsch geschrieben oder konnte nicht gefunden werden."
na dann muss ein schrägstrich
am 15.01.2018 - 18:02 Uhr
na dann muss ein schrägstrich vor c: in root Sorry ich hab kein Windows zum Entwicklen, ich benutze genau wegen sowas linux in einer virtuellen box :-) Aber deine Fehlermeldung spricht ja von einem externen Befehl, das heißt, einem Befehl auf dem Server darum noch mal die Frage, wie sieht denn der Alias für den Server aus. Kopier den doch einfafch und nimm vorhandene Doamins und oder passwörter mittels eines Platzhalters wie oder raus. Dann kann ich mir den auch ansehen.
https://drupal-tv.de
Drupal sehen und lernen
Hier ist mein
am 15.01.2018 - 19:04 Uhr
Hier ist mein Server-Alias:
$aliases['production'] = array(
'uri' => 'https://example.de',
'root' => '/home/x/drupal-root/web',
'remote-host' => 'server.host',
'remote-user' => 'x',
'os' => 'Linux',
'path-aliases' => array(
'%drush' => '/home/x/drupal-root/vendor/drush/drush',
'%dump-dir' => '/home/.drush',
'%files' => '/home/x/drupal-root/web/sites/default/files',
),
);
ich würde in remote-host mal
am 15.01.2018 - 19:21 Uhr
ich würde in remote-host mal die ip-adresse statt der domain einsetzen.
drush dürfte außerdem
/home/x/drupal-root/vendor/drush/drush'/drush,
heißen müssen
https://drupal-tv.de
Drupal sehen und lernen
'/drush, Apostroph und Komma?
am 15.01.2018 - 19:45 Uhr
'/drush,
Apostroph und Komma? Sicher?
Die IP-Adresse habe ich eingesetzt, ändert aber nichts - der SSH-Login funktioniert sicher, denn da hatte ich früher bereits Fehler, die ich beheben konnte.
Nein drush liegt im Ordner
am 15.01.2018 - 19:55 Uhr
Nein drush liegt im Ordner Vendor
Ordner drush
.
Ordner drush
Und das dritte ist das drush Script selber. Du verweist in deiner Version quasi auf den unter oder drush um in Vendor drush vergisst aber die ausführbare Datei. So kann drush nicht ausgeführt werden. Hänge einfach einmal mehr /drush an. Dann sollte es passen. Vielleicht ist das auch schon die ganze Kunst.
Komma und Apostrophe bleiben selbstverständlich
https://drupal-tv.de
Drupal sehen und lernen
Ok, ändert leider immer noch
am 15.01.2018 - 20:05 Uhr
Ok, ändert leider immer noch nichts :(