Как правило, вы не хотите выставлять свою базу данных напрямую в Интернет. ИМХО, вам стоит подумать о том, чтобы поставить сервер (веб или приложение) между ними. Если вы хотите или должны, однако, вам следует приложить реальные усилия для его защиты: очень надежные пароли, очень ограниченные разрешения на все, использование SSL с клиентскими сертификатами или, возможно, даже настройку VPN ... Тогда это становится меньше вопросом программирование, а не конфигурация, и ошибка сервера - хорошее место для получения дополнительной информации.
Я нашел два интересных связанных вопроса о Serverfault, которые касаются этой проблемы (но не MySQL):
- Мудрость разоблачения сервера базы данных в Интернете?
- Как представить миру базу данных SQL 2008 через Интернет?
С точки зрения архитектуры, даже с толстым клиентом, я бы предпочел иметь промежуточный веб-сервер, который использует SOAP или REST для обеспечения функциональности базы данных для клиентского приложения.