Die Aktualisierung der Daten in der mysql-db von bash-Skript
Es ist mein erstes mal versuchen, fügen Sie einige Infos in eine mysql-Datenbank mit einem ausführbaren .sh Datei.
Ich bin mit dem folgenden bash-Skript, aber es funktioniert nicht. Offensichtlich sind die meisten der vars unten wurden ersetzt und vereinfacht Verständnis zu erleichtern.
#!/bin/bash
mysql -D mydbname -u mydbuser -p mydbpass <<EOF
INSERT INTO mytable (mycolumn) VALUES ('myvalue') WHERE id = '13';
exit;
Können Sie sehen, dass ich will nur zu legen Sie meinen Wert in der Zeile, wo die id = 13 und diese Zeile existiert.
Ich glaube nicht, dass ich die Formatierung die Abfrage richtig bin ich?
EDIT : Ok nach der folgenden Vorschläge, die ich nun habe, doch es funktioniert immer noch nicht?
#!/bin/bash
mysql -D mydbname -u mydbuser -p mydbpass <<EOF
UPDATE mytable SET mycolumn = 'myvalue' WHERE id = '13';
exit;
- Mischen Sie die insert-und update-syntax. Dass die nicht funktionieren.
- Die Abfrage an sich falsch ist.
INSERT
nichtWHERE
- Klausel - Doh! Natürlich haben Sie Recht.. Große Aufsicht von mir.. Fühle mich sehr dumm, jetzt 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort gefunden, nach einigen trial-and-error.
Nur, falls jemand anderes sucht, das gleiche zu tun, was es ist :
Beachten Sie, dass es kein Leerzeichen zwischen -p und Passwort -puserpass wenn Sie ein Leerzeichen einfügen, da -p userpass es wird eine Eingabeaufforderung für das Passwort.
Hoffe, es hilft jemandem 😉
Die Lösung funktioniert wie ein Charme, wie angegeben, in der obigen post. Sie können auch die option-D, während die Angabe der dbname.
Weitere Referenz auf die Optionen, konsultieren Sie bitte die folgenden link: https://www.shellhacks.com/mysql-run-query-bash-script-linux-command-line/
Dein query funktioniert nicht wie Sie haben nicht eingegeben EOF am Ende des Skripts. Siehe mein Beispiel unten.
Beachten Sie, dass die -ppassword-argument kann ausgelassen werden, wenn die Verbindung nicht benötigen Sie ein Passwort.