无法连接到Virtualbox ubuntu VM上运行的mysql数据库,该虚拟机只有主机网络

时间:2017-09-29 14:06:55

标签: mysql ubuntu spring-boot virtualbox

我的Mac上运行VirtualBox,只有一个主机网络适配器,IP地址为192.168.56.15。我已将VM的IP地址设置为192.168.56.107

Host : MacOs High Sierra
Guest VM: Ubuntu

我在VM上安装并配置了一个mysql数据库,并且我已将用户appuser设置为可以远程访问数据库。

现在,在我的Mac上,当我尝试运行springboot应用程序时,我在eclipse中运行了一个sprintboot应用程序。我收到以下错误。

2017-09-29 14:43:02.545  INFO 3886 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-09-29 14:43:02.545  INFO 3886 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
Fri Sep 29 14:43:12 BST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
2017-09-29 14:43:12.835 ERROR 3886 --- [           main] o.a.tomcat.jdbc.pool.ConnectionPool      : Unable to create initial connections of pool.

java.sql.SQLException: Access denied for user ''@'192.168.56.15' (using password: NO)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964) ~[mysql-connector-java-5.1.44.jar:5.1.44]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973) ~[mysql-connector-java-5.1.44.jar:5.1.44]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909) ~[mysql-connector-java-5.1.44.jar:5.1.44]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873) ~[mysql-connector-java-5.1.44.jar:5.1.44]

为什么会出现此错误?我已指定所有正确的值。这是我的application.properties文件。 请注意,错误中的IP是VirtualBox中仅主机适配器的IP。

spring.datasource.url=jdbc:mysql://192.168.56.107:3306/appdatabase
spring.datasource.data-username=appuser
spring.datasource.data-password=******
spring.datasource.dbcp2.test-while-idle=true
spring.datasource.dbcp2.validation-query=SELECT 1
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

您与MySQL的连接工作正常,因为您没有收到任何连接异常。但是,您的身份验证失败,因为您尝试使用空用户名登录,如异常中所示:

java.sql.SQLException: Access denied for user ''@'192.168.56.15' (using password: NO)

您正在使用名为spring.datasource.data-usernamespring.datasource.data-password的媒体资源。 Spring启动不知道这些属性。正确的属性为spring.datasource.usernamespring.datasource.password

spring.datasource.username=appuser
spring.datasource.password=******

可以在the documentation中找到常用属性列表。