在服务器上部署spring boot war文件时,我们面临以下错误。
由以下原因引起的:java.sql.SQLException:无法 在com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError。)创建/写入文件'/var/tmp/#sql_85b_0.MAI'(Errcode:2)。 java:129)〜[mysql-connector-java-8.0.18.jar:8.0.18] 在com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)〜[mysql-connector-java -8.0.18.jar:8.0.18] 在com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)〜[mysql-connector-java-8.0.18.jar:8.0.18] com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1200)〜[mysql-connector-java-8.0.18.jar:8.0.18] com.mysql.cj.jdbc.DatabaseMetaData $ 2.forEach (DatabaseMetaData.java:2124)〜[mysql-connector-java-8.0.18.jar:8.0.18] 在com.mysql.cj.jdbc.DatabaseMetaData $ 2.forEach(DatabaseMetaData.java:2053)〜[MySQL的连接器的Java-8.0.18.jar:8.0.18] 。 pool.HikariProxyDatabaseMetaData.getColumns(HikariProxyDatabaseMetaData.java)〜[HikariCP-3.4.1.jar:na] 在com.mysql.cj.jdbc.IterateBlock.doForAll(IterateBlock.java:56)〜[[mysql-connector-java-8.0-18.jar:8.0.18] 在com.mysql.cj.jdbc.DatabaseMetaData.getColumns( DatabaseMetaData.java:2229)〜[mysql-connector-java-8.0.18.jar:8.0.18] 在com.zaxxer.hikari.pool.ProxyDatabaseMetaData.getColumns(ProxyDatabaseMetaData.java:90)〜[HikariCP-3.4.1 .jar:na], .. 。46个共同的框架被省略 在org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.populateTablesWithColumns(InformationExtractorJdbcDatabaseMetaDataImpl.java:354)〜[hibernate-core-5.4.6.Final.jar:5.4.6.Final] 01-Jan-2020 16: 39:47.746严重[localhost-startStop-2] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild:开始: org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/daily-report-code-1.0]], 位于org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440), 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198 ) 在org.apache.catalina.startChild.HostConfig.deployWAR( org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743) 上的在java.lang.Thread.run(Thread.java:748) org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719) 的org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)的) 在org.apache.catalina.startup.HostConfig $ DeployWar.run (HostConfig.java:1841)在org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:970) 在java.util.concurrent.Executors $ RunnableAdapter java.util.concurrent.FutureTask.run(FutureTask.java:266) 的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)的.call(Executors.java:511) 。 ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624) 由以下原因引起:org.springframework.beans.factory.BeanCreationException:创建在类路径资源[org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaConfiguration.class]中定义的名称为'entityManagerFactory'的bean时出错:调用init方法失败;嵌套的异常是javax.persistence.PersistenceException:[PersistenceUnit:默认]无法构建Hibernate SessionFactory。嵌套异常是org.hibernate.exception.GenericJDBCException: 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1803)访问表元数据时出错 在org.springframework.org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) 上的(AbstractAutowireCapableBeanFactory.java: 在org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBean $ 0(AbstractBeanFactory.java:323) 在org.springframework。 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)的Bean.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory。 getBean(AbstractBeanFactory.java:202) 在org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1108) 在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868) 在org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:550) 在org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) 在org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) 在org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run 在org.springframework.boot.SpringApplication.run(SpringApplication.java:315) 在org.springframework.boot.web.servlet.support (SpringBootServletInitializer.java:152), ...还有10个 在org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:132) 在org。 springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:92) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154) 在org.apache.catalina.util.LifecycleBase.start(LifecycleBase )的org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:172).java:183) 在org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:403)时 引起原因:javax.persistence.PersistenceException:[PersistenceUnit:默认]无法构建Hibernate SessionFactory;请参见参考资料。嵌套异常是org.hibernate.exception.GenericJDBCException:错误访问表的元数据 在org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:378) 在org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java :341), 位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1799) ... 29个 org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.convertSQLException(InformationExtractorJdbcDatabaseMetaDataImpl.java:102)处的) 原因:org.hibernate.exception.GenericJDBCException: 在org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)访问表元数据时出错 在org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) 在org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99) 在org.hibernate.tool.schema .extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.populateTablesWithColumns(InformationExtractorJdbcDatabaseMetaDataImpl.java:387) 位于org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDataternalMetaDataImplh 。 .DatabaseInformationImpl.getTablesInformation(DatabaseInformationImpl.java:120) 在org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:65) 在org.hibernate.tool org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114) 上的.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:207 )在org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction (SchemaManagementToolCoordinator.java:184) 在org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build( org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:73) 上的) 上的 org.hibernate.internal.SessionFactoryImpl。(SessionFactoryImpl.java:320) 在org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:462) 在 org.springframework.or(org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58)的org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935)处 。 .LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ...另外33个
application.property文件包含,
spring.datasource.url = jdbc:mysql:// some-server-ip:3306 / daily_report_db spring.datasource.username = root spring.datasource.password = root server.servlet.contextPath = / dailyreportcode spring.datasource.driver-class -name = com.mysql.cj.jdbc.Driver spring.datasource.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect #休眠ddl auto(创建,创建,删除,验证,更新) spring.jpa.hibernate.ddl-自动=更新 spring.jpa.show-sql = false spring.jpa.generate-ddl = true
如果你们中的任何人都可以扩展您的帮助,那将是非常有意义的。
我正在使用mariaDB。/etc/my.cnf文件包含,
[mysqld] tmpdir = / tmp
所以解决方案是
使用mkdir命令创建新文件夹
mkdir tmp1
提供对mysqld的所有权权限
chown mysql:mysql / tmp1
将my.cnf文件中的tmpdir = / tmp更改为tmpdir = / tmp1
tmpdir = / tmp1
重新启动mariadb服务。
服务mariadb重新启动
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句