La guía paso a paso o código que verás en este artículo es la solución más sencilla y efectiva que hallamos a tu duda o dilema.
Solución:
H2 todavía se está ejecutando (lo puedo garantizar). Necesita usar una conexión TCP para múltiples usuarios como ->
O
DriverManager.getConnection("jdbc:h2:tcp://localhost/server~/dbname","username","password");
También significa que debe iniciar el servidor en modo TCP. Honestamente, es bastante sencillo en la documentación.
Fuerce la finalización del proceso (javaw.exe para Windows) y asegúrese de que cualquier aplicación que pueda haberlo iniciado esté cerrada. Tienes un bloqueo activo.
Estoy usando h2db con una aplicación de prueba T24 tafj, tuve el mismo problema pero logré resolverlo identificando la aplicación que ejecuta h2 (iniciada cuando intenté configurar una conexión de base de datos).
ps aux|grep java
dará salida como:
sysadmin 22755 3.2 0.1 5189724 64008 pts/3 Sl 08:28 0:00 /usr/java/default/bin/java -server -Xmx2048M -XX:MaxPermSize=256M -cp h2-1.3.175.jar:/r14tafj/TAFJ/dbscripts/h2/TAFJFunctions.jar org.h2.tools.Server -tcp -tcpAllowOthers -baseDir /r14tafj/t24/data
ahora mata esto con su ID de proceso:
kill -9 22755
y por último eliminar el archivo de bloqueo:
rm -f dbname.lock.db
Yo tuve el mismo problema. en Intellj, cuando quiero usar h2 base de datos cuando mi programa se estaba ejecutando, recibí el mismo error. Para resolver este problema, cambié la URL de conexión de
spring.datasource.url=jdbc:h2:file:~/ipinbarbot
a:
spring.datasource.url=jdbc:h2:~/ipinbarbot;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE
Y entonces mi problema desapareció. ahora puedo conectarme a la base de datos “ipinbarbot” cuando mi programa está. Si usa Hibernate, tampoco olvide tener:
spring.jpa.hibernate.ddl-auto = update
buena suerte
Si entiendes que te ha sido de ayuda nuestro post, sería de mucha ayuda si lo compartieras con otros programadores y nos ayudes a dar difusión a esta información.