
Ich versuche, die Ausgabe der gemachten Aussagen umzuleiteninnendie mysqlsh
interaktive Umgebung.
Ich führe mysqlsh im Terminal unter OSX aus und habe auf den Hilfeseiten keinen geeigneten Parameter zum Umleiten gefunden. Das Umleiten der Ausgabe über die Standard-Pipe „grep > and_run.txt“ funktioniert nicht, da die mysqlsh-Umgebung über einen eigenen Satz akzeptierter Befehle verfügt.
Meine Befehle sind:
:$ mysqlsh root@localhost:3306/my_schema
# now the mysqlsh interactive console is open with an active connection to my_schema
mysqlsh> shell.options.set('resultFormat','json')
mysqlsh> session.runSql("SELECT * FROM my_schema.my_table")
# prints the schema as json array - i would like to rerout this output
Hinweis: Ich habe diese Frage von SO herübergezogen, wie von einem hilfreichen Benutzer dort vorgeschlagen (danke @user1934428)
Antwort1
Eine Möglichkeit, mein Ziel zu erreichen, besteht darin, den „Interaktivmodus“ nicht zu verwenden, mysqlsh
sondern für jede Anweisung eine neue Verbindung zu öffnen.
Nicht meine bevorzugte Methode, da ich davon ausgehe, dass dadurch für jeden Befehl eine neue Sitzung initialisiert wird, aber es funktioniert.
mysqlsh --uri root@localhost:3306/my_schema --sql --execute "select * from my_table;" --result-format=json/array > my_objects.json
Ich wäre wirklich an einer saubereren Lösung interessiert/dankbar.