我创建了SpringBoot
应用程序,它连接到远程数据库mysql
。我用两个远程数据库连接测试它:一个有动态IP,第二个有永久IP - 它是托管。
在本地运行:
当我尝试在本地运行应用程序(连接到具有永久IP的数据库)时,直接从Intellij
一切正常 - 在我的浏览器中,我可以看到该应用程序。
当我尝试使用动态IP运行应用程序时 - 我需要提供主机名而不是IP,应用程序抛出:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
Caused by: java.sql.SQLException: null, message from server: "Host 'HomeGateway' is not allowed to connect to this MySQL server"
在服务器上运行 当我尝试在服务器上运行它时尽管我提供了与动态IP或具有pernament IP的主机的连接,但它也会抛出:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
application.properties
文件看起来像 - 与动态IP的数据库连接:
# REMOTE DATABASE
spring.datasource.url = jdbc:mysql://modraszka.sth.sth:3336/test3?autoReconnect=true&useSSL=false
spring.datasource.username = root
spring.datasource.password = password
我必须补充一点,当在服务器上部署了appication时,在同一台服务器上找到了数据库 - 这个有动态服务器 - modraszka.sth.sth。
要点: 每当我想从连接到远程数据库的服务器运行应用程序时,即使我想连接到与我的应用程序位于同一服务器上的数据库,它总是会抛出失败。我还尝试使用db properites连接运行应用程序:localhost:3306 / test3 - > 但也失败了。