Я создаю веб-API ASP.NET на VPS Linux, с помощью Apache и mod_mono. Я имею все настроенное и успешно продемонстрировал, что веб-маршруты API работают.
Мои новейшие локальные изменения добавляют интеграцию с mysql базой данных. На моей машине разработки это работает отлично. Однако каждый раз, когда я загружаю опубликованный API, соединение со сбоями базы данных. Я сделал некоторое рытье и понял, что исключение, выданное ошибка отчетов 1042 - не Может получить имя хоста для Вашего адреса.
Вот моя строка подключения:
SERVER={0};DATABASE={1};UID={2};PASSWORD={3};
(сервер является localhost, и другие значения заполнены в соответственно).
Что я делаю неправильно? Как я могу заставить это соединяться с mysql? У меня нет проблем при соединении из той же учетной записи, которую я пытаюсь использовать, когда я - ssh'ed в на моей администраторской учетной записи...
Править:
Я попытался поместить skip-name-resolve
в/var/mysql/my.cnf, но это ничего не сделало. Я также попытался сбросить хосты в mysql.
Ваш API, кажется, правильно не разрешает "localhost" часть строки соединения с базой данных. При замене "localhost" IP-адресом он может соединиться с сервером по сети, таким образом, пропустив часть твердости.
Однако Ваш сервер MySQL должен предоставить доступ по сети. Это - установка не по умолчанию, для которой вполне достаточная справка доступна в другом месте на этом сайте.
Имеют в виду, что Вы теперь трудно кодировали IP-адрес в программное обеспечение API. Удостоверьтесь, что программное обеспечение продолжает функционировать даже после изменения сети, например, путем замены IP-адреса надлежащим именем хоста.