Failed to initialize mysql database at startup

Error log:

2020-12-09 20:43:59,608 [main] INFO metabase.plugins.dependencies - Metabase Oracle Driver dependency {:class oracle.jdbc.OracleDriver} satisfied? false
2020-12-09 20:43:59,609 [main] INFO metabase.plugins.dependencies - Plugins with unsatisfied deps: [“Metabase Oracle Driver” “Metabase Vertica Driver”]
2020-12-09 20:43:59,613 [main] INFO metabase.driver.impl - Registered driver :sqlserver (parents: [:sql-jdbc]) :truck:
2020-12-09 20:43:59,617 [main] INFO metabase.driver.impl - Registered driver :presto (parents: [:sql]) :truck:
2020-12-09 20:43:59,622 [main] INFO metabase.plugins.dependencies - Plugin ‘Metabase Google Analytics Driver’ depends on plugin ‘Metabase Google Drivers Shared Dependencies’
2020-12-09 20:43:59,622 [main] INFO metabase.plugins.dependencies - Metabase Google Analytics Driver dependency {:plugin Metabase Google Drivers Shared Dependencies} satisfied? true
2020-12-09 20:43:59,623 [main] INFO metabase.driver.impl - Registered driver :googleanalytics (parents: [:google]) :truck:
2020-12-09 20:43:59,627 [main] INFO metabase.driver.impl - Registered driver :druid :truck:
2020-12-09 20:43:59,649 [main] INFO metabase.driver.impl - Registered abstract driver :hive-like (parents: [:sql-jdbc]) :truck:
2020-12-09 20:43:59,650 [main] INFO metabase.driver.impl - Registered driver :sparksql (parents: [:hive-like]) :truck:
2020-12-09 20:43:59,657 [main] INFO metabase.driver.impl - Registered driver :h2 (parents: [:sql-jdbc]) :truck:
2020-12-09 20:43:59,671 [main] INFO metabase.driver.impl - Registered driver :mysql (parents: [:sql-jdbc]) :truck:
2020-12-09 20:43:59,682 [main] INFO metabase.core - Setting up and migrating Metabase DB. Please sit tight, this may take a minute…
2020-12-09 20:43:59,684 [main] INFO metabase.db - Verifying mysql Database Connection …
2020-12-09 20:43:59,686 [clojure-agent-send-off-pool-0] INFO metabase.driver.impl - Initializing driver :sql…
2020-12-09 20:43:59,687 [clojure-agent-send-off-pool-0] INFO metabase.driver.impl - Initializing driver :sql-jdbc…
2020-12-09 20:43:59,687 [clojure-agent-send-off-pool-0] INFO metabase.driver.impl - Initializing driver :mysql…
2020-12-09 20:43:59,757 [main] INFO metabase.db - Successfully verified MySQL 5.7.18-txsql-log application database connection. :white_check_mark:
2020-12-09 20:43:59,758 [main] INFO metabase.db - Running Database Migrations…
2020-12-09 20:43:59,764 [main] INFO metabase.db - Setting up Liquibase…
2020-12-09 20:43:59,788 [main] INFO metabase.db - Liquibase is ready.
2020-12-09 20:43:59,789 [main] INFO metabase.db.liquibase - Checking if Database has unrun migrations…
2020-12-09 20:44:01,367 [main] INFO metabase.db.liquibase - Database has unrun migrations. Waiting for migration lock to be cleared…
2020-12-09 20:44:01,429 [main] INFO metabase.db.liquibase - Migration lock is cleared. Running migrations…
2020-12-09 20:44:01,498 [main] ERRORliquibase.changelog.ChangeSet - Change Set migrations/000_migrations.yaml::1::agilliland failed. Error: (conn=7666387) Table ‘core_organization’ already exists [Failed SQL: CREATE TABLE metabase.core_organization (id INT AUTO_INCREMENT NOT NULL, slug VARCHAR(254) NOT NULL, name VARCHAR(254) NOT NULL, description TEXT NULL, logo_url VARCHAR(254) NULL, inherits BIT(1) NOT NULL, CONSTRAINT PK_CORE_ORGANIZATION PRIMARY KEY (id), UNIQUE (slug)) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci]
2020-12-09 20:44:01,501 [main] WARN metabase.util - auto-retry metabase.db.liquibase$migrate_up_if_needed_BANG_$fn__18609@47b366a2: Migration failed for change set migrations/000_migrations.yaml::1::agilliland:
Reason: liquibase.exception.DatabaseException: (conn=7666387) Table ‘core_organization’ already exists [Failed SQL: CREATE TABLE metabase.core_organization (id INT AUTO_INCREMENT NOT NULL, slug VARCHAR(254) NOT NULL, name VARCHAR(254) NOT NULL, description TEXT NULL, logo_url VARCHAR(254) NULL, inherits BIT(1) NOT NULL, CONSTRAINT PK_CORE_ORGANIZATION PRIMARY KEY (id), UNIQUE (slug)) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci]
2020-12-09 20:44:01,566 [main] ERRORliquibase.changelog.ChangeSet - Change Set migrations/000_migrations.yaml::1::agilliland failed. Error: (conn=7666387) Table ‘core_organization’ already exists [Failed SQL: CREATE TABLE metabase.core_organization (id INT AUTO_INCREMENT NOT NULL, slug VARCHAR(254) NOT NULL, name VARCHAR(254) NOT NULL, description TEXT NULL, logo_url VARCHAR(254) NULL, inherits BIT(1) NOT NULL, CONSTRAINT PK_CORE_ORGANIZATION PRIMARY KEY (id), UNIQUE (slug)) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci]
2020-12-09 20:44:01,568 [main] WARN metabase.util - auto-retry metabase.db.liquibase$migrate_up_if_needed_BANG_$fn__18609@47b366a2: Migration failed for change set migrations/000_migrations.yaml::1::agilliland:
Reason: liquibase.exception.DatabaseException: (conn=7666387) Table ‘core_organization’ already exists [Failed SQL: CREATE TABLE metabase.core_organization (id INT AUTO_INCREMENT NOT NULL, slug VARCHAR(254) NOT NULL, name VARCHAR(254) NOT NULL, description TEXT NULL, logo_url VARCHAR(254) NULL, inherits BIT(1) NOT NULL, CONSTRAINT PK_CORE_ORGANIZATION PRIMARY KEY (id), UNIQUE (slug)) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci]
2020-12-09 20:44:01,630 [main] ERRORliquibase.changelog.ChangeSet - Change Set migrations/000_migrations.yaml::1::agilliland failed. Error: (conn=7666387) Table ‘core_organization’ already exists [Failed SQL: CREATE TABLE metabase.core_organization (id INT AUTO_INCREMENT NOT NULL, slug VARCHAR(254) NOT NULL, name VARCHAR(254) NOT NULL, description TEXT NULL, logo_url VARCHAR(254) NULL, inherits BIT(1) NOT NULL, CONSTRAINT PK_CORE_ORGANIZATION PRIMARY KEY (id), UNIQUE (slug)) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci]
2020-12-09 20:44:01,632 [main] WARN metabase.util - auto-retry metabase.db.liquibase$migrate_up_if_needed_BANG_$fn__18609@47b366a2: Migration failed for change set migrations/000_migrations.yaml::1::agilliland:
Reason: liquibase.exception.DatabaseException: (conn=7666387) Table ‘core_organization’ already exists [Failed SQL: CREATE TABLE metabase.core_organization (id INT AUTO_INCREMENT NOT NULL, slug VARCHAR(254) NOT NULL, name VARCHAR(254) NOT NULL, description TEXT NULL, logo_url VARCHAR(254) NULL, inherits BIT(1) NOT NULL, CONSTRAINT PK_CORE_ORGANIZATION PRIMARY KEY (id), UNIQUE (slug)) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci]
2020-12-09 20:44:01,746 [main] ERRORliquibase.changelog.ChangeSet - Change Set migrations/000_migrations.yaml::1::agilliland failed. Error: (conn=7666387) Table ‘core_organization’ already exists [Failed SQL: CREATE TABLE metabase.core_organization (id INT AUTO_INCREMENT NOT NULL, slug VARCHAR(254) NOT NULL, name VARCHAR(254) NOT NULL, description TEXT NULL, logo_url VARCHAR(254) NULL, inherits BIT(1) NOT NULL, CONSTRAINT PK_CORE_ORGANIZATION PRIMARY KEY (id), UNIQUE (slug)) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci]
2020-12-09 20:44:01,761 [main] ERRORmetabase.core - Metabase Initialization FAILED
liquibase.exception.MigrationFailedException: Migration failed for change set migrations/000_migrations.yaml::1::agilliland:
Reason: liquibase.exception.DatabaseException: (conn=7666387) Table ‘core_organization’ already exists [Failed SQL: CREATE TABLE metabase.core_organization (id INT AUTO_INCREMENT NOT NULL, slug VARCHAR(254) NOT NULL, name VARCHAR(254) NOT NULL, description TEXT NULL, logo_url VARCHAR(254) NULL, inherits BIT(1) NOT NULL, CONSTRAINT PK_CORE_ORGANIZATION PRIMARY KEY (id), UNIQUE (slug)) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci]
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:637) ~[metabase.jar:?]
at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:53) ~[metabase.jar:?]
at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:83) ~[metabase.jar:?]
at liquibase.Liquibase.update(Liquibase.java:202) ~[metabase.jar:?]
at liquibase.Liquibase.update(Liquibase.java:179) ~[metabase.jar:?]
at liquibase.Liquibase.update(Liquibase.java:175) ~[metabase.jar:?]
at metabase.db.liquibase$migrate_up_if_needed_BANG_$fn__18609.invoke(liquibase.clj:125) ~[metabase.jar:?]
at metabase.util$do_with_auto_retries.invokeStatic(util.clj:437) ~[metabase.jar:?]
at metabase.util$do_with_auto_retries.invoke(util.clj:429) ~[metabase.jar:?]
at metabase.util$do_with_auto_retries.invokeStatic(util.clj:444) ~[metabase.jar:?]
at metabase.util$do_with_auto_retries.invoke(util.clj:429) ~[metabase.jar:?]
at metabase.util$do_with_auto_retries.invokeStatic(util.clj:444) ~[metabase.jar:?]
at metabase.util$do_with_auto_retries.invoke(util.clj:429) ~[metabase.jar:?]
at metabase.util$do_with_auto_retries.invokeStatic(util.clj:444) ~[metabase.jar:?]
at metabase.util$do_with_auto_retries.invoke(util.clj:429) ~[metabase.jar:?]
at metabase.db.liquibase$migrate_up_if_needed_BANG_.invokeStatic(liquibase.clj:125) ~[metabase.jar:?]
at metabase.db.liquibase$migrate_up_if_needed_BANG_.invoke(liquibase.clj:113) ~[metabase.jar:?]
at metabase.db$migrate_BANG_$fn__19819$fn__19820.invoke(db.clj:208) ~[metabase.jar:?]
at metabase.db.liquibase$do_with_liquibase.invokeStatic(liquibase.clj:37) ~[metabase.jar:?]
at metabase.db.liquibase$do_with_liquibase.invoke(liquibase.clj:29) ~[metabase.jar:?]
at metabase.db$migrate_BANG_$fn__19819.invoke(db.clj:203) ~[metabase.jar:?]
at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:807) ~[metabase.jar:?]
at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:776) ~[metabase.jar:?]
at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:852) ~[metabase.jar:?]
at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:776) ~[metabase.jar:?]
at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:789) ~[metabase.jar:?]
at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:776) ~[metabase.jar:?]
at metabase.db$migrate_BANG_.invokeStatic(db.clj:194) ~[metabase.jar:?]
at metabase.db$migrate_BANG_.invoke(db.clj:173) ~[metabase.jar:?]
at metabase.db$run_schema_migrations_BANG_.invokeStatic(db.clj:336) ~[metabase.jar:?]
at metabase.db$run_schema_migrations_BANG_.invoke(db.clj:330) ~[metabase.jar:?]
at metabase.db$setup_db_BANG__STAR_$fn__19902.invoke(db.clj:353) ~[metabase.jar:?]
at metabase.util$do_with_us_locale.invokeStatic(util.clj:670) ~[metabase.jar:?]
at metabase.util$do_with_us_locale.invoke(util.clj:656) ~[metabase.jar:?]
at metabase.db$setup_db_BANG__STAR_.invokeStatic(db.clj:351) ~[metabase.jar:?]
at metabase.db$setup_db_BANG__STAR_.invoke(db.clj:346) ~[metabase.jar:?]
at metabase.db$setup_db_from_env_BANG_.invokeStatic(db.clj:365) ~[metabase.jar:?]
at metabase.db$setup_db_from_env_BANG_.invoke(db.clj:358) ~[metabase.jar:?]
at metabase.db$setup_db_BANG_$fn__19907.invoke(db.clj:375) ~[metabase.jar:?]
at metabase.db$setup_db_BANG_.invokeStatic(db.clj:373) ~[metabase.jar:?]
at metabase.db$setup_db_BANG_.invoke(db.clj:368) ~[metabase.jar:?]
at metabase.core$init_BANG_.invokeStatic(core.clj:96) ~[metabase.jar:?]
at metabase.core$init_BANG_.invoke(core.clj:75) ~[metabase.jar:?]
at metabase.core$start_normally.invokeStatic(core.clj:140) [metabase.jar:?]
at metabase.core$start_normally.invoke(core.clj:134) [metabase.jar:?]
at metabase.core$_main.invokeStatic(core.clj:173) [metabase.jar:?]
at metabase.core$_main.doInvoke(core.clj:167) [metabase.jar:?]
at clojure.lang.RestFn.invoke(RestFn.java:397) [metabase.jar:?]
at clojure.lang.AFn.applyToHelper(AFn.java:152) [metabase.jar:?]
at clojure.lang.RestFn.applyTo(RestFn.java:132) [metabase.jar:?]
at metabase.core.main(Unknown Source) [metabase.jar:?]
Caused by: liquibase.exception.DatabaseException: (conn=7666387) Table ‘core_organization’ already exists [Failed SQL: CREATE TABLE metabase.core_organization (id INT AUTO_INCREMENT NOT NULL, slug VARCHAR(254) NOT NULL, name VARCHAR(254) NOT NULL, description TEXT NULL, logo_url VARCHAR(254) NULL, inherits BIT(1) NOT NULL, CONSTRAINT PK_CORE_ORGANIZATION PRIMARY KEY (id), UNIQUE (slug)) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci]
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:356) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:57) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:125) ~[metabase.jar:?]
at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1229) ~[metabase.jar:?]
at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1211) ~[metabase.jar:?]
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:600) ~[metabase.jar:?]
… 50 more
Caused by: java.sql.SQLSyntaxErrorException: (conn=7666387) Table ‘core_organization’ already exists
at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:62) ~[metabase.jar:?]
at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:153) ~[metabase.jar:?]
at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:274) ~[metabase.jar:?]
at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:363) ~[metabase.jar:?]
at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:501) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:352) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:57) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:125) ~[metabase.jar:?]
at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1229) ~[metabase.jar:?]
at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1211) ~[metabase.jar:?]
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:600) ~[metabase.jar:?]
… 50 more
Caused by: org.mariadb.jdbc.internal.util.exceptions.MariaDbSqlException: Table ‘core_organization’ already exists
at org.mariadb.jdbc.internal.util.exceptions.MariaDbSqlException.of(MariaDbSqlException.java:34) ~[metabase.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:194) ~[metabase.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:262) ~[metabase.jar:?]
at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:357) ~[metabase.jar:?]
at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:501) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:352) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:57) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:125) ~[metabase.jar:?]
at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1229) ~[metabase.jar:?]
at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1211) ~[metabase.jar:?]
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:600) ~[metabase.jar:?]
… 50 more
Caused by: java.sql.SQLException: Table ‘core_organization’ already exists
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:1688) ~[metabase.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1550) ~[metabase.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1513) ~[metabase.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:256) ~[metabase.jar:?]
at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:357) ~[metabase.jar:?]
at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:501) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:352) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:57) ~[metabase.jar:?]
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:125) ~[metabase.jar:?]
at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1229) ~[metabase.jar:?]
at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1211) ~[metabase.jar:?]
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:600) ~[metabase.jar:?]
… 50 more
2020-12-09 20:44:01,780 [Thread-11] INFO metabase.core - Metabase Shutting Down …
2020-12-09 20:44:01,781 [Thread-11] INFO metabase.server - Shutting Down Embedded Jetty Webserver
2020-12-09 20:44:01,806 [Thread-11] INFO metabase.core - Metabase Shutdown COMPLETE

Hi @weifeng.tang
You are trying to again migrate or setup a new instance, but the application database is not empty. If you are migrating, then make sure that you only do that one time.

1 Like

Do not migrate data, just redeploy an instance

@weifeng.tang I don’t understand what “just redeploy an instance” means, but perhaps TXSQL (Tencent MySQL) is not fully compatible with MySQL.

1 Like

But I compared the test environment, there is no ‘core_organization’ table This is a very strange thing. However, if an error is reported in the log, it will be created

@flamber I compared the test environment, there is no ‘core_organization’ table This is a very strange thing. However, if an error is reported in the log, it will be created ; The MySQL version problem you mentioned is a good direction for troubleshooting

@weifeng.tang Perhaps you are not using utf8mb4 encoding and collation on the database?
The error Table 'core_organization' already exists is being returned from MySQL, so perhaps you have having problems with either the database not being empty, when you start the setup, or you have multiple instances writing at the same time.

Since you say that it worked in your test environment, then there must be something different between your test environment and production.

1 Like

@flamber The database creation statement is: create database metabase character set utf8mb4 collate utf8mb4_ unicode_ The question is why metabase should create a table (core) of one_ Organization), but this table is not created in the test environment database;
Tomorrow, when I try to clear the database or initialize metabase, I can have the configuration option to skip the creation of existing tables and only print the warning log, which will not affect the normal operation of the program

@flamber Suggestion: during the initialization of metabase, there can be configuration options to skip the creation of existing tables and only print the warning log, which will not affect the normal operation of the program. What do you think of this suggestion?

@weifeng.tang The migration script makes sure that the application database is in a correct state, so it will run through the script and apply all changes. Metabase has existed for several years and some tables have been removed in later changesets.

Without a correct application database, then it’s basically in corrupted state, so no, Metabase will not allow you to start in that state.

You can set MB_DB_AUTOMIGRATE=false, which will print all changes needed to be applied, so you can manually do that, but it will not allow you to start Metabase until that is done.

1 Like

@flamber 否可以关闭初始化metabase实列时初始化mysql表的配置;我们提前将数据库和数据表创建好,你认为这种方式如何

Set export MB_DB_AUTOMIGRATE=false
Does not take effect, it will still create a table at startup

@flamber Thank you for your assistance and support. Metabase has been deployed, but there is still a problem. The configuration of the mail proxy out of the network does not take effect.
java -Dhttps.proxyHost=ip -Dhttps.proxyPort=3128 -Dlog4j.configurationFile=conf/log4j2.xml -jar metabase.jar &