база данных открта внешне, т.е к ней можно удалённо подключаться
Одно из другого не следует. Для работы из вне имеет смысл использовать ssh тоннель.
только с одного ip адреса - адреса где лежит сайт
Если у вас shared хостинг - у меня для вас плохие новости...
как это возможно?
Инспектируйте код вашего сайта, полностью. Возможно права на загружаемые файлы не корректные, или в web root лежит помимо точки входа еще что-то исполняемое.
Вполне возможно в случае ошибки - вы стектрейс выводите и еще какие-то данные.
Возможно debug панель не закрыта.
Возможно у вас пароль легко взламывается.
Возможно взломали не конкретно вас, а хостера.
Но начние с поиска: у кого в принципе есть доступ к вашей БД. Иногда взлом происходит изнутри, это печально, но случается.