seata新版本配置sql数据源,找不到sql文件在哪的问题
seata版本:seata-server-1.4.2.zip (官网下载的Seata的binary版本)
启动报错:
10:13:55.949 WARN --- [ main] i.s.s.s.db.store.LogStoreDataBaseDAO : global_table table or TRANSACTION_NAME column not found
Exception in thread "main" io.seata.common.exception.DataAccessException: Table 'seata.global_table' doesn't exist
at io.seata.server.storage.db.store.LogStoreDataBaseDAO.queryGlobalTransactionDO(LogStoreDataBaseDAO.java:182)
at io.seata.server.storage.db.store.DataBaseTransactionStoreManager.readSession(DataBaseTransactionStoreManager.java:182)
at io.seata.server.storage.db.store.DataBaseTransactionStoreManager.readSession(DataBaseTransactionStoreManager.java:212)
at io.seata.server.storage.db.session.DataBaseSessionManager.findGlobalSessions(DataBaseSessionManager.java:188)
at io.seata.server.storage.db.session.DataBaseSessionManager.allSessions(DataBaseSessionManager.java:177)
at io.seata.server.session.SessionHolder.reload(SessionHolder.java:143)
at io.seata.server.session.SessionHolder.init(SessionHolder.java:130)
at io.seata.server.Server.main(Server.java:80)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'seata.global_table' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)
at com.mysql.jdbc.Util.getInstance(Util.java:372)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2535)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1911)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2034)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:227)
at io.seata.server.storage.db.store.LogStoreDataBaseDAO.queryGlobalTransactionDO(LogStoreDataBaseDAO.java:176)
... 7 more
原因:seata1.0.0开始没有将db_store.sql文件放在conf目录下
解决方法:(本文已seata-server-1.4.2为例,seata1.0.0后的版本解决方法类似)
1、https://github.com/seata/seata/releases下载对应版本的Source code
2、解压此文件,seata-1.4.2\script\server\db\mysql.sql,这个文件就是那三个表的sql文件