Die Einfügeanweisung muss an mysql gesendet werden, nicht an eine weitere Zeile im Shell-Skript, also müssen Sie daraus ein "Here-Dokument" machen.
mysql --host=randomhost --user=randomuser --password=randompass randomdb << EOF
insert into table (field1,field2,field3) values('http://www.site.com/$hash','$file','$size');
EOF
Der << EOF
bedeutet, alles vor der nächsten Zeile zu nehmen, die nichts als EOF
enthält (keine Leerzeichen am Anfang) als Standardeingabe für das Programm.