2016-04-24 5 views
4

Ich verwendet SpringBoot ein Web-App zu entwickeln, und das ist meine application.properties Datei der Anmeldeinformationen angeben, auf die Datenbank zuzugreifen:jdbc4.MySQLSyntaxErrorException: Tabelle existiert nicht in der Datenbank

spring.datasource.driverClassName=com.mysql.jdbc.Driver 
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/Salamander 
spring.datasource.username=root 
spring.datasource.password=root 
spring.jpa.hibernate.ddl-auto=create-drop 
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect 

aber wenn ich versuchen, den SpringBoot App laufen, es mir diesen Fehler gibt:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'salamander.user' doesn't exist 
    at sun.reflect.GeneratedConstructorAccessor72.newInstance(Unknown Source) ~[na:na] 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_40] 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[na:1.8.0_40] 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:404) ~[mysql-connector-java-5.1.38.jar:5.1.38] 
    at com.mysql.jdbc.Util.getInstance(Util.java:387) ~[mysql-connector-java-5.1.38.jar:5.1.38] 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:939) ~[mysql-connector-java-5.1.38.jar:5.1.38] 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878) ~[mysql-connector-java-5.1.38.jar:5.1.38] 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814) ~[mysql-connector-java-5.1.38.jar:5.1.38] 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478) ~[mysql-connector-java-5.1.38.jar:5.1.38] 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625) ~[mysql-connector-java-5.1.38.jar:5.1.38] 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2551) ~[mysql-connector-java-5.1.38.jar:5.1.38] 
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861) ~[mysql-connector-java-5.1.38.jar:5.1.38] 
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1962) ~[mysql-connector-java-5.1.38.jar:5.1.38] 
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] 
    ... 69 common frames omitted 

natürlich habe ich ein Unternehmen Benutzer aufgerufen, aber die Datenbank ist leer. Aber

sollte sagen, zu überwintern, um die Tabellen wieder in der db zu erstellen, richtig? Also, was ist das Problem?

Wenn ich das gleiche, aber mit einer entfernten Datenbank, funktioniert es, auch wenn die Remote-DB leer ist.

+0

tat u ur prblm zu beheben verwalten? – FuSsA

+1

@FuSsA Ich denke, das Problem war diese Anweisung 'spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLInnoDBDialect', die ich entfernte und es zu arbeiten begann ... – nbro

+0

Es sollte dem Dialekt entsprechen, den Sie erwarten verwendet werden, zum Beispiel org.hibernate.dialect.MySQL5Dialect hat perfekt für mich gearbeitet. Stellen Sie außerdem sicher, dass Sie keine der veralteten Dialektklassen hier verwenden. – ITisha

Antwort

1

dieses Problem wurde durch das Entfernen festen spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLInnoDBDialec t