Andre Schulze schrieb:
Christian Wippermann schrieb:
UPDATE table SET blob_var='(Binärdaten)' WHERE id=1;
Du kannst MySQL auch von der shell aus benutzen.
Das ist genau das, was ich will.
Das eigentliche Problem ist natürlich wie du die binären Daten vor der shell schützen kannst.
Was soll ich da schützen?
Folgendes geht z.B. schon mal nicht: my_pgp=`cat my_file` mysql -u ich -pgeheim -e "UPDATE table SET blob_var='$my_pgp' WHERE id=1"
Das funktioniert bei der ASCII version (file.asc) schon mal prima (ohne \ und mit Angabe der zu bearbeitenden DB). Halt .... doch nicht. Es gehen alle Zeilenumbrüche verloren. Der gesamte Key steht in einer Zeile und wird von pgp/gpg nicht verstanden.
Bei den Binärdaten müsste ich noch eine Art addslashes() ala PHP durchführen, damit mysql die Daten nimmt.
my_pgp=`cat my_file|addslashes` funzt bei mir irgendwie nich ;-)
Bei Tests war die md5sum von my_file anders wenn ich dann folgendes getan habe: echo $my_pgp | md5sum md5sum my_file
Hmmm ... ???? my_pgp=`cat my_file` && echo $my_pgp > new.pgp pgp -ka new.pgp -> funktioniert leider auch nicht.
Vielleicht können die shell Experten weiterhelfen.
Bitte!
Einfacher ist IMHO ein kleines php oder perl Skript zu schreiben, welches die quote Funktion des mysql Modules nutzt, um den Kram sauber zu schreiben.
Ich würde hier gern ohne scripte auskommen, um zu wissen wie es auch so funktioniert. Damit kann ich Probleme in Zukunft schneller lösen.
Christian