Restarting mysql in that case is a bad practice. It results in thrashing your buffers and if your database is large enough - it will take some time to warm up.
I suppose you have some heavy queries that consumes too much cpu.
mysql> show full processlist to identify long-running queries and try to optimize them: create indices, re-write queries to run faster and do less sorting.
For immediate results you can kill this queries using:
mysql> kill QUERYIDNUMBER
To directly answer your questions - you can safely restart it with
service mysql restart, but this will take long time. Restarting will block all new connections to the database, but it will wait until all running queries finish. You may kill heavy queries to speed up.
Also if you need to speed-up mysql restarting there's a good trick to do it.
mysql> set global innodb_max_dirty_pages_pct = 0;
then wait until all (or almost all) dirty buffer pages flush to disk, see
mysqladmin ext -i10 | grep dirty
When you have output like this:
| Innodb_buffer_pool_pages_dirty | 12 |
You can restart your mysql server and it will be much faster:
service mysql restart