La declaración de inserción debe enviarse a mysql, no a otra línea en el script de shell, por lo que debe convertirlo en un "documento aquí".
mysql --host=randomhost --user=randomuser --password=randompass randomdb << EOF
insert into table (field1,field2,field3) values('http://www.site.com/$hash','$file','$size');
EOF
El << EOF
significa tomar todo antes de la siguiente línea que no contiene nada más que EOF
(sin espacios en blanco al principio) como entrada estándar al programa.