Soy nuevo en Open Xchange y estoy intentando instalarlo en una máquina virtual Debian 10.7 limpia siguiendo las instruccionesinstrucciones de instalación oficiales.
Instalé MariaDB en el mismo servidor, le di una contraseña al usuario root ( root_db_pass
#ejemplo), creé una nueva base de datos ( open_xchange
) y un usuario ( open_xchange_user
) con contraseña ( ox_db_pass
#ejemplo).
Seguí todos los pasos de las instrucciones de instalación, que funcionan bien hasta que necesito registrar el servidor local en la base de datos configdb de Open-Xchange ( /opt/open-xchange/sbin/registerserver -n oxserver -A oxadminmaster -P admin_master_password
), luego recibo el error.
root@axx-oxch-srv01:~# /opt/open-xchange/sbin/registerserver -n oxserver -A oxadminmaster -P admin_master_password
server could not be registered:
Server response:
Look-up failed. Service "OXUtil_V2" is not available.
at sun.rmi.registry.RegistryImpl.lookup(RegistryImpl.java:227)
at sun.rmi.registry.RegistryImpl_Skel.dispatch(RegistryImpl_Skel.java:133)
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:469)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:301)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:303)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:279)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:380)
at sun.rmi.registry.RegistryImpl_Stub.lookup(RegistryImpl_Stub.java:123)
at java.rmi.Naming.lookup(Naming.java:101)
at com.openexchange.admin.console.util.server.RegisterServer.<init>(RegisterServer.java:77)
at com.openexchange.admin.console.util.server.RegisterServer.main(RegisterServer.java:91)
Busqué en Google este problema pero no hay casi nada que encontrar al respecto. ¡Revisé las contraseñas 3 veces para asegurarme de no haber cometido un error tipográfico! Cómo puedo arreglar esto ?
Alguna información adicional que puede ser necesaria para ayudarme.
initconfigdb
comando usado
/opt/open-xchange/sbin/initconfigdb --configdb-dbname open_xchange --configdb-user open_xchange_user --configdb-pass ox_db_pass --mysql-root-passwd root_db_pass
oxinstaller
comando usado
/opt/open-xchange/sbin/oxinstaller --no-license --servername=oxserver --configdb-pass=ox_db_pass --master-pass=admin_master_password --network-listener-host=localhost --servermemory 1024
Si se necesitan más datos, hágamelo saber y actualizaré mi pregunta...
ACTUALIZACIÓN 1
Descubrí que también se registró algo que difiere del mensaje que recibo en la consola. Las siguientes entradas de registro aparecen después de i, lo service open-xchange restart
cual se requiere después de ejecutar/opt/open-xchange/sbin/oxinstaller --no-license --servername=oxserver
Registros:
2021-01-07T01:56:55,546-0600 INFO [pool-8-thread-1] com.openexchange.startup.impl.osgi.DBMigrationMonitorTracker$1.run(DBMigrationMonitorTracker$1.java:132)
Open-Xchange Server v7.10.4-Rev14 initialized. The server should be up and running...
2021-01-07T01:57:01,425-0600 INFO [OXTimer-0000006] com.openexchange.push.impl.balancing.reschedulerpolicy.PermanentListenerRescheduler.cancelTimerTask(PermanentListenerRescheduler.java:207)
Canceled timer task for rescheduling checks
2021-01-07T01:57:01,439-0600 WARN [OXTimer-0000006] com.openexchange.database.internal.ReplicationMonitor.checkActualAndFallback(ReplicationMonitor.java:181)
DBP-0001 Categories=SERVICE_DOWN Message='Cannot get connection to config DB.' exceptionID=808265395-5
com.openexchange.exception.OXException: DBP-0001 Categories=SERVICE_DOWN Message='Cannot get connection to config DB.' exceptionID=808265395-5
at com.openexchange.database.DBPoolingExceptionCodes.create(DBPoolingExceptionCodes.java:260)
at com.openexchange.database.internal.ReplicationMonitor.createException(ReplicationMonitor.java:245)
at com.openexchange.database.internal.ReplicationMonitor.checkActualAndFallback(ReplicationMonitor.java:174)
at com.openexchange.database.internal.ReplicationMonitor.checkActualAndFallback(ReplicationMonitor.java:157)
at com.openexchange.database.internal.ConfigDatabaseServiceImpl.get(ConfigDatabaseServiceImpl.java:138)
at com.openexchange.database.internal.ConfigDatabaseServiceImpl.get(ConfigDatabaseServiceImpl.java:133)
at com.openexchange.database.internal.ConfigDatabaseServiceImpl.getReadOnly(ConfigDatabaseServiceImpl.java:173)
at com.openexchange.database.internal.DatabaseServiceImpl.getReadOnly(DatabaseServiceImpl.java:152)
at com.openexchange.push.impl.PushDbUtils.getContextsWithPushRegistrations(PushDbUtils.java:296)
at com.openexchange.push.impl.PushDbUtils.getPushRegistrations(PushDbUtils.java:256)
at com.openexchange.push.impl.PushManagerRegistry.getUsersWithPermanentListeners(PushManagerRegistry.java:834)
at com.openexchange.push.impl.balancing.reschedulerpolicy.PermanentListenerRescheduler.reschedule(PermanentListenerRescheduler.java:364)
at com.openexchange.push.impl.balancing.reschedulerpolicy.PermanentListenerRescheduler.doReschedule(PermanentListenerRescheduler.java:341)
at com.openexchange.push.impl.balancing.reschedulerpolicy.PermanentListenerRescheduler.checkReschedule(PermanentListenerRescheduler.java:327)
at com.openexchange.push.impl.balancing.reschedulerpolicy.PermanentListenerRescheduler$1.run(PermanentListenerRescheduler.java:284)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at com.openexchange.threadpool.internal.CustomThreadPoolExecutor$ScheduledFutureTask.runPeriodic(CustomThreadPoolExecutor.java:1016)
at com.openexchange.threadpool.internal.CustomThreadPoolExecutor$ScheduledFutureTask.run(CustomThreadPoolExecutor.java:1041)
at com.openexchange.threadpool.internal.CustomThreadPoolExecutor$Worker.runTask(CustomThreadPoolExecutor.java:834)
at com.openexchange.threadpool.internal.CustomThreadPoolExecutor$Worker.run(CustomThreadPoolExecutor.java:861)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.openexchange.pooling.PoolingException: Cannot create pooled object.
at com.openexchange.pooling.ReentrantLockPool.get(ReentrantLockPool.java:320)
at com.openexchange.database.internal.AbstractMetricAwarePool.get(AbstractMetricAwarePool.java:149)
at com.openexchange.database.internal.AbstractMetricAwarePool.get(AbstractMetricAwarePool.java:72)
at com.openexchange.database.internal.TimeoutFetchAndSchema.get(TimeoutFetchAndSchema.java:93)
at com.openexchange.database.internal.ReplicationMonitor.checkActualAndFallback(ReplicationMonitor.java:167)
... 19 common frames omitted
===>>> Caused by: java.sql.SQLException: Access denied for user 'openexchange'@'localhost' (using password: YES) <<<===
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)
...
...
Tenga en cuenta esta línea: Caused by: java.sql.SQLException: Access denied for user 'openexchange'@'localhost' (using password: YES)
. Esto es interesante ya que openexchange@localhost
no es el usuario que proporcioné durante el initconfigdb
comando y tampoco se corresponde con el usuario de la base de datos que creé en MariaDB.
Intenté crear dicho usuario con la misma contraseña que el usuario que creé y ejecuté todo nuevamente, pero desafortunadamente esto resulta en el mismo error. ¿No tengo idea de dónde obtiene Open Xchange este usuario...???
Respuesta1
Descubrí que el nombre de usuario predeterminado se usa en el error, descrito en la actualización 1. Esto se debe a que --configdb-username=open_xchange_user
falta el parámetro en el oxinstaller
comando.
Esto también me hizo pensar que --configdb-database=open_xchange
probablemente también sea necesario.
También agregué el parámetro --configdb-writehost=localhost
al comando oxinstaller ya que parece ser necesario también si solo usa 1 servidor de base de datos en lugar de un clúster. (verhttps://oxpedia.org/wiki/index.php?title=OXLoadBalancingClustering_Database#Configure_OX_to_use_with_a_standalone_database)
Entonces mi oxinstaller
comando actualizado se ve así:
/opt/open-xchange/sbin/oxinstaller --no-license --servername=oxserver --configdb-server=open_xchange --configdb-user=open_xchange_user --configdb-pass=ox_db_pass --configdb-writehost=localhost --master-pass=admin_master_password --network-listener-host=localhost --servermemory 1024
Después de esto todo funciona bien.