Я размещаю сервер mysql в кадре Digital Ocean, и я пытаюсь выяснить, как предоставить веб-приложение Spring Boot доступ к капле, чтобы он мог подключиться к базе данных. Я сконфигурировал каплю так, чтобы ее можно было достичь только через туннель ssh (т.е. Отключить аутентификацию пароля), но сам сервер базы данных можно связать с именем пользователя и паролем.
Я знаю, как подключиться к базе данных с помощью Connector/J, настройки источников данных и т.д. Однако дополнительный уровень безопасности Digital Ocean для меня является новым, и я не уверен, как подойти к этой проблеме.
EDIT: Когда я запускаю приложение и пытаюсь попасть в конечную точку, я получаю следующую ошибку:
The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: null, message from server: "Host '<my network hostname>' is not allowed to connect to this MySQL server"] with root cause
Поэтому я ошибался, думая, что проблема аутентификации связана с капелькой Digital Ocean. Как указывает сообщение об ошибке (см. Вопрос выше), приложение Spring Boot могло попасть на удаленный сервер mysql, и там возникла проблема с аутентификацией. Оказывается, пользователь mysql, с которым я пытался соединиться, мог использоваться только на localhost.
Итак, я создал нового пользователя mysql и привязал его к общедоступному IP-адресу локальной сети, и это решило проблему. Для получения дополнительной информации о том, как это сделать, прочитайте следующий ответ:
Хосту 'xxx.xx.xxx.xxx' не разрешено подключаться к этому серверу MySQL