Ich bin neu bei Open Xchange und versuche, es auf einer sauberen Debian 10.7 VM zu installieren, indem ich denoffizielle Installationsanweisungen.
Ich habe MariaDB auf demselben Server installiert, dem Root-Benutzer ein Passwort ( root_db_pass
#Beispiel) gegeben, eine neue Datenbank ( open_xchange
) und einen Benutzer ( open_xchange_user
) mit Passwort ( ox_db_pass
#Beispiel) erstellt.
Habe alle Schritte der Installationsanleitung befolgt und alles funktioniert einwandfrei, bis ich den lokalen Server in der Open-Xchange configdb-Datenbank registrieren muss ( /opt/open-xchange/sbin/registerserver -n oxserver -A oxadminmaster -P admin_master_password
), dann erhalte ich die Fehlermeldung
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)
Ich habe dieses Problem gegoogelt, aber dazu fast nichts gefunden. Ich habe die Passwörter dreimal überprüft, um sicherzugehen, dass ich keinen Tippfehler gemacht habe! Wie kann ich das beheben?
Einige zusätzliche Informationen, die möglicherweise erforderlich sind, um mir zu helfen
verwendeter initconfigdb
Befehl
/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
verwendeter oxinstaller
Befehl
/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
Wenn weitere Daten benötigt werden, lassen Sie es mich wissen und ich werde meine Frage aktualisieren …
AKTUALISIERUNG 1
Ich habe gerade festgestellt, dass auch etwas protokolliert wird, das sich von der Meldung unterscheidet, die ich in der Konsole erhalte. Die folgenden Protokolleinträge werden angezeigt, nachdem ich die Meldung ausgeführt habe, service open-xchange restart
die nach der Ausführung erforderlich ist/opt/open-xchange/sbin/oxinstaller --no-license --servername=oxserver
Protokolle:
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)
...
...
Beachten Sie diese Zeile: Caused by: java.sql.SQLException: Access denied for user 'openexchange'@'localhost' (using password: YES)
. Dies ist interessant, da dies openexchange@localhost
nicht der Benutzer ist, den ich während des initconfigdb
Befehls angebe, und auch nicht mit dem Datenbankbenutzer übereinstimmt, den ich in MariaDB erstellt habe.
Ich habe versucht, einen solchen Benutzer mit demselben Passwort wie den von mir erstellten Benutzer zu erstellen und alles erneut auszuführen, aber leider tritt dabei derselbe Fehler auf. Ich habe keine Ahnung, woher Open Xchange diesen Benutzer hat...???
Antwort1
Ich habe festgestellt, dass bei dem in Update 1 beschriebenen Fehler der Standardbenutzername verwendet wird. Dies liegt daran, dass der Parameter --configdb-username=open_xchange_user
im Befehl fehlt oxinstaller
.
Dies brachte mich auch zu dem Schluss, dass dies --configdb-database=open_xchange
wahrscheinlich auch erforderlich ist.
Ich habe den Parameter auch --configdb-writehost=localhost
zum oxinstaller-Befehl hinzugefügt, da dies ebenfalls erforderlich zu sein scheint, wenn Sie nur einen Datenbankserver anstelle eines Clusters verwenden. (siehehttps://oxpedia.org/wiki/index.php?title=OXLoadBalancingClustering_Database#Configure_OX_to_use_with_a_standalone_database)
Mein aktualisierter oxinstaller
Befehl sieht also folgendermaßen aus:
/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
Danach funktioniert alles einwandfrei.