Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Database initialization doesn't complete on Windows #11

Open
drislands opened this issue Jun 11, 2023 · 0 comments
Open

Database initialization doesn't complete on Windows #11

drislands opened this issue Jun 11, 2023 · 0 comments

Comments

@drislands
Copy link

Hi,

I'm currently trying to do a first-time setup, and it seems that at least one of the steps is silently failing. These are the issues I've encountered since I started:

Creating the new DB fails, stating it cannot find the database facto.
[info] application - Creating Pool for datasource 'default'
[error] c.z.h.p.HikariPool - HikariPool-1 - Exception during pool initialization.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'facto'
        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:400)
        at com.mysql.jdbc.Util.getInstance(Util.java:383)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)
Oops, cannot start the server.
Configuration error: Configuration error[Cannot connect to database [default]]
        at play.api.Configuration$.configError(Configuration.scala:156)
        at play.api.Configuration.reportError(Configuration.scala:990)
        at play.api.db.DefaultDBApi.$anonfun$connect$1(DefaultDBApi.scala:48)
        at play.api.db.DefaultDBApi.$anonfun$connect$1$adapted(DefaultDBApi.scala:42)
        at scala.collection.immutable.List.foreach(List.scala:389)
        at play.api.db.DefaultDBApi.connect(DefaultDBApi.scala:42)
        at play.api.db.DBApiProvider.get$lzycompute(DBModule.scala:86)
        at play.api.db.DBApiProvider.get(DBModule.scala:75)
        at play.api.db.DBApiProvider.get(DBModule.scala:56)
        at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
        at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
        at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
        at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
        at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:54)
        at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:132)
        at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:93)
        at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:80)
        at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
        at com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:80)
        at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:62)
        at com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:987)
        at com.google.inject.util.Providers$GuicifiedProviderWithDependencies.initialize(Providers.java:149)
        at com.google.inject.util.Providers$GuicifiedProviderWithDependencies$$FastClassByGuice$$2a7177aa.invoke(<generated>)
        at com.google.inject.internal.SingleMethodInjector$1.invoke(SingleMethodInjector.java:54)
        at com.google.inject.internal.SingleMethodInjector.inject(SingleMethodInjector.java:89)
        at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:132)
        at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:93)
        at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:80)
        at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
        at com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:80)
        at com.google.inject.internal.Initializer$InjectableReference.get(Initializer.java:223)
        at com.google.inject.internal.Initializer.injectAll(Initializer.java:132)
        at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:174)
        at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
        at com.google.inject.Guice.createInjector(Guice.java:99)
        at com.google.inject.Guice.createInjector(Guice.java:84)
        at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:185)
        at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:137)
        at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
        at play.core.server.ProdServerStart$.start(ProdServerStart.scala:51)
        at play.core.server.ProdServerStart$.main(ProdServerStart.scala:25)
        at play.core.server.ProdServerStart.main(ProdServerStart.scala)
Caused by: Configuration error: Configuration error[Failed to initialize pool: Unknown database 'facto']
        at play.api.Configuration$.configError(Configuration.scala:156)
        at play.api.Configuration.reportError(Configuration.scala:990)
        at play.api.db.HikariCPConnectionPool.create(HikariCPModule.scala:63)
        at play.api.db.PooledDatabase.createDataSource(Databases.scala:205)
        at play.api.db.DefaultDatabase.dataSource$lzycompute(Databases.scala:123)
        at play.api.db.DefaultDatabase.dataSource(Databases.scala:121)
        at play.api.db.DefaultDatabase.getConnection(Databases.scala:142)
        at play.api.db.DefaultDatabase.getConnection(Databases.scala:138)
        at play.api.db.DefaultDBApi.$anonfun$connect$1(DefaultDBApi.scala:44)
        ... 39 more
Caused by: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Unknown database 'facto'
        at com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:569)
        at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:555)
        at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
        at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
        at play.api.db.HikariCPConnectionPool.$anonfun$create$1(HikariCPModule.scala:51)
        at scala.util.Try$.apply(Try.scala:209)
        at play.api.db.HikariCPConnectionPool.create(HikariCPModule.scala:47)
        ... 45 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'facto'
        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:400)
        at com.mysql.jdbc.Util.getInstance(Util.java:383)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)
        at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1665)
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1207)
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2249)
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2280)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2079)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
        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:400)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
        at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
        at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365)
        at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:194)
        at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:460)
        at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:534)
        ... 50 more
I manually created the facto database, suspecting the command was trying to delete the database first (per the wording of the -D option), and then ran it again. Strangely, it appeared to start the server.
[info] application - Creating Pool for datasource 'default'
[info] p.a.d.DefaultDBApi - Database [default] connected at jdbc:mysql://localhost/facto?user=root&password=****
[info] play.api.Play - Application started (Prod)
[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
I then killed the server and ran the createAdminUser command, and got the same results.
[info] application - Creating Pool for datasource 'default'
[info] p.a.d.DefaultDBApi - Database [default] connected at jdbc:mysql://localhost/facto?user=root&password=****
[info] play.api.Play - Application started (Prod)
[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
Finally, I ran the server without any arguments and attempted to connect via URL, which threw an error in both the UI and the CLI.
[info] application - Creating Pool for datasource 'default'
[info] p.a.d.DefaultDBApi - Database [default] connected at jdbc:mysql://localhost/facto?user=root&password=****
[info] play.api.Play - Application started (Prod)
[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
[warn] c.z.h.HikariConfig - The initializationFailFast propery is deprecated, see initializationFailTimeout
[error] application -

! @81pb04p62 - Internal server error, for (POST) [/login/?returnTo=%2Fapp%2Fuseradministration] ->

play.api.UnexpectedException: Unexpected exception[MySQLSyntaxErrorException: Table 'facto.users' doesn't exist]
        at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:247)
        at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:178)
        at play.core.server.AkkaHttpServer$$anonfun$1.applyOrElse(AkkaHttpServer.scala:363)
        at play.core.server.AkkaHttpServer$$anonfun$1.applyOrElse(AkkaHttpServer.scala:361)
        at scala.concurrent.Future.$anonfun$recoverWith$1(Future.scala:412)
        at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:37)
        at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
        at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
        at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:91)
        at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'facto.users' 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:400)
        at com.mysql.jdbc.Util.getInstance(Util.java:383)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2447)

As you can see, the error states the facto.users table doesn't exist. I checked with a SQL client and confirmed the database is indeed empty. From this, and the initial error I saw, it seems like none of the arguments given in the setup were actually executed: the database wasn't made, the tables weren't created, and the admin user wasn't made.

Is there perhaps a different way the Windows implementation needs to have the arguments passed? I know Java but not Scala, so I'm not sure where the breakdown might be.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant