Saltar al contenido

Nombre de usuario / contraseña del modo de servidor HSQLDB

Solución:

Si prueba estas propiedades del servidor con versiones recientes de HyperSQL, probablemente obtendrá un mensaje de error ya que las propiedades del servidor no son correctas. Las propiedades “server.username” y “server.password” no son válidas. Y el dbname.0 la propiedad debe estar en minúsculas.

Si desea crear una base de datos de servidor con un nombre de usuario que no sea SA, puede agregar el usuario y la contraseña a la ruta de la base de datos:

server.database.0 = file:E:/DB/myDB;user=testuser;password=testpw
server.dbname.0 = mydb

Una vez que se apaga el servidor, no es necesario incluir el usuario y la contraseña. Las credenciales se utilizan solo para crear la base de datos. Después de eso, las credenciales se verifican cuando se establece una conexión con el servidor.

Actualización de 2020 con información adicional debido a preguntas recientes en los comentarios:

  1. El nombre de usuario y la contraseña especificados para database.0 se tienen en cuenta solo cuando se crea una nueva base de datos al iniciar el servidor. Si los archivos de la base de datos existen antes de iniciar el servidor, el nombre de usuario y la contraseña son innecesarios y simplemente se ignoran.

  2. Otras configuraciones para una nueva base de datos, como hsqldb.tx=mvcc, se puede agregar al database.0 cuerda.

  3. Debes tener propiedades para database.0 para su servidor. Puede agregar propiedades para database.1 si su servidor está sirviendo dos bases de datos diferentes.

  4. La ruta del archivo especificada para database.0 está oculto a los usuarios que se conectan al servidor. Solo el dbname.0 El valor se utiliza para el acceso, por ejemplo:
    DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb;uer=testuser;password=testpw")

  5. En el getConnection llamar, es mejor indicar el usuario y la contraseña por separado para mantener el código claro:DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb", "testuser", "testpw")

  6. Consulte la Guía http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html para obtener todos los detalles.

Parece que el problema con el que se estaba encontrando (al menos inicialmente) es que, para HSQL en bases de datos de memoria, el nombre de usuario “tiene que ser” sa (no distingue entre mayúsculas y minúsculas, ni está vacío, lo que implica el “predeterminado” que es sa). Puede utilizar una contraseña en blanco o especificar una contraseña. Si especifica una contraseña y desea volver a conectarse a la misma base de datos (en memoria) más adelante, tendrá que volver a utilizar la misma contraseña. Si desea utilizar un usuario que no sea SA, probablemente tendrá que conectarse primero a su base de datos y ejecutar algunos comandos de tipo “crear usuario”. Luego, vuelva a conectarse usando ese usuario (asumiendo que su base de datos está en la memoria).

Puede usar varias bases de datos en memoria diferentes (si eso es lo que está tratando de lograr especificando un usuario diferente) como este:

// change the MySpecialTestDb String for multiple different in memory databases
// or reuse the same value
// to reconnect to a previously created in memory database [i.e. within the same process previously].
String DB_CONNECTION_STR = "jdbc:hsqldb:mem:MySpecialTestDb"; 
String DB_USERNAME_STR = "sa";
String DB_USERNAME_PASSWORD = "";
DriverManager.getConnection(DB_CONNECTION_STR, DB_USERNAME_STR, DB_USERNAME_PASSWORD);

ref: http://www.hsqldb.org/doc/1.8/guide/guide.html#advanced-chapter

O si simplemente desea “restablecer” una base de datos en la memoria, como entre cada prueba unitaria, consulte aquí.

Punto no 1) Siempre que cree una base de datos, debe especificar el nombre de usuario y la contraseña. Puede dejarlos en blanco; Pero se debe usar el mismo nombre de usuario y contraseña al conectarse al servidor.

Si observa el archivo de script de su base de datos, puede ver comandos como: –

CREATE USER "usr" PASSWORD DIGEST '9003d1df22eb4d3820015070385194c8'
ALTER USER "usr" SET LOCAL TRUE
GRANT DBA TO "usr"

Había creado DB con el nombre de usuario “usr” para que apareciera en el archivo de script en esos comandos. Ahora, al iniciar el servidor, no necesito especificar el nombre de usuario o la contraseña. Ignorará esta información.

Al conectar el servidor, debe proporcionar exactamente el mismo nombre de usuario y contraseña que proporcionó al crear la base de datos.

Punto no 2) Asegúrese de que no haya espacio en la ruta de sus archivos de base de datos. Si hay espacio, encierre la ruta completa entre comillas dobles. Luché mucho para descubrir este tonto error mío.

Ahora, si inicio el servidor debajo del comando, se inicia correctamente

1) Vaya a la biblioteca de HSQL

cd C:UsersownerDocumentsJava Projecthsqldb-2.2.9hsqldblib

Entonces da el mando

java -cp hsqldb.jar org.hsqldb.Server -database.0 file:"C:UsersownerDocumentsJava Projecthsqldb-2.2.9TmpDBLocationmyKauDB" -dbname.0 xdb

2) En otro símbolo del sistema fue a la ubicación lib

cd C:UsersownerDocumentsJava Projecthsqldb-2.2.9hsqldblib

Luego conectó la interfaz de usuario Swing de HSQL DB dando un comando en otra ventana de símbolo del sistema

java -cp hsqldb.jar org.hsqldb.util.DatabaseManagerSwing --driver org.hsqldb.jdbcDriver --URL jdbc:hsqldb:hsql://localhost/xdb --user "usr" --password ""
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *