Agreed with JennyD's answer, there is no way to do it without shutting the database down.
However if the mysql database itself is not that large and the system's I/O speed reasonably high you could easily do this withy minimal down time, just by chaining a few commands together and running it at a time usage is low. I've successfully done this a number of times for critical mysql databases. Perhaps announce the maintenance and do a few test runs on a test system to find out how long it takes.
Something like:
/etc/init.d/mysql stop && mv /var/lib/mysql/database /mnt/newdisk/mysql/ && ln -s /mnt/newdisk/mysql/database /var/lib/mysql/database && /etc/init.d/mysql start
It's a bit crude but effective. And practical in many cases (probably in all but the most mission critical "can't ever be down" systems). The "&&" in the command makes sure that if a previous command fails it will not continue.