Прежде всего, всегда проверяйте ошибку, возвращаемую с .connect()
:
connection.connect(function(err) {
if (err) {
console.error('error connecting: ', err);
return;
}
});
Будет проще определить, что не так, и вы, возможно, даже сможете написать свой код для восстановления.
Во-вторых, время вашего запроса на соединение истекло.Это означает, что хост на thehost
просто игнорирует ваш запрос.Многие хостинг-провайдеры, особенно те, которые предлагают 5 долларов США в месяц, разрешают API-доступ к своим базам данных MySQL только из своих собственных серверных ферм.Они настраивают свои брандмауэры так, чтобы они игнорировали внешние запросы к внутренним сервисам (таким как базы данных)
Некоторые - не все - хостинг-провайдеры предлагают параметр конфигурации, позволяющий своим клиентам получать прямой доступ к MySQL извне.Вы должны посмотреть на их справочную документацию или спросить об этом представителя службы поддержки.
Почему они это делают?Безопасность и многопользовательский режим: многие клиенты используют один и тот же сервер MySQL, и если киберпреступнику удастся взломать MySQL, он может разбить сервер или украсть данные.