L'instruction d'insertion doit être envoyée à mysql, pas à une autre ligne dans le script shell, vous devez donc en faire un "document ici".
mysql --host=randomhost --user=randomuser --password=randompass randomdb << EOF
insert into table (field1,field2,field3) values('http://www.site.com/$hash','$file','$size');
EOF
Le << EOF
signifie prendre tout avant la ligne suivante qui ne contient que EOF
(pas d'espace au début) comme entrée standard du programme.