代码之家  ›  专栏  ›  技术社区  ›  A j

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

  •  0
  • A j  · 技术社区  · 7 年前

    我的Mac电脑上运行着VirtualBox,有一个IP地址为的纯主机网络适配器 192.168.56.15 . 我已将虚拟机的ip地址设置为 192.168.56.107

    Host : MacOs High Sierra
    Guest VM: Ubuntu
    

    我已经在虚拟机上安装并配置了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]
    

    我已经指定了所有正确的值。这是我的申请表。属性文件。 请注意,错误中的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 回复  |  直到 7 年前
        1
  •  0
  •   Dimitri Mestdagh    7 年前

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

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

    您正在使用名为 spring.datasource.data-username spring.datasource.data-password . Spring boot不知道这些属性。正确的属性是 spring.datasource.username spring.datasource.password :

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

    常见属性的列表可以在中找到 the documentation