It seems that Guacamole is still unable to use the latest MariaDB connector 
using the staging/1.6 branch. This have been a problem with 1.5.4/1.5.5 too.

In /etc/guacamole/lib I have both

mariadb-java-client-3.4.1.jar
mysql-connector-j-8.0.32.jar

and in /etc/guacamole/guacamole.properties

# MySQL properties
mysql-hostname: localhost
mysql-port: 3306
mysql-database: dbname
mysql-username: username
mysql-password: userpass
mysql-driver: mariadb
#mysql-driver: mysql

mysql-user-password-min-length: 8
mysql-user-password-require-multiple-case: true
mysql-user-password-require-symbol: true
mysql-user-password-require-digit: true
mysql-user-password-prohibit-username: true

If I configure as
##mysql-driver: mariadb
mysql-driver: mysql
and restart tomcat, using the MySQL Connector, everything works as expected.

However, if I change the configuration to
mysql-driver: mariadb
#mysql-driver: mysql
and restart tomcat, guacamole is unable to find and use the MariaDB Connector

I get the following errors in the /var/log/messages file

Oct 18 12:26:22 apps9 server[82442]: 12:26:22.598 [http-nio-8080-exec-6] WARN  
o.a.g.a.mysql.conf.MySQLEnvironment - You have enabled case-sensitive 
usernames; however, MySQL's default collations do not support case-sensitive 
string comparisons. If you really want case-sensitive usernames you will need 
to configure your database appropriately.
Oct 18 12:26:22 apps9 server[82442]: 12:26:22.637 [http-nio-8080-exec-6] DEBUG 
o.a.i.t.jdbc.JdbcTransaction - Opening JDBC Connection
Oct 18 12:26:22 apps9 server[82442]: 12:26:22.638 [http-nio-8080-exec-6] DEBUG 
o.a.g.a.j.DynamicallyAuthenticatedDataSource - Creating new database connection 
for pool.
Oct 18 12:26:22 apps9 server[82442]: 12:26:22.647 [http-nio-8080-exec-6] WARN  
o.a.g.e.AuthenticationProviderFacade - The "mysql" authentication provider has 
encountered an internal error which will halt the authentication process. If 
this is unexpected or you are the developer of this authentication provider, 
you may wish to enable debug-level logging. If this is expected and you wish to 
ignore such failures in the future, please set "skip-if-unavailable: mysql" 
within your guacamole.properties.
Oct 18 12:26:22 apps9 server[82442]: 12:26:22.647 [http-nio-8080-exec-6] DEBUG 
o.a.g.event.EventLoggingListener - Empty authentication attempt (login screen 
initialization) from [192...16, 192...10] failed:
Oct 18 12:26:22 apps9 server[82442]: ### Error querying database.  Cause: 
java.sql.SQLException: No suitable driver found for 
jdbc:mysql://localhost:3306/dbname
Oct 18 12:26:22 apps9 server[82442]: ### The error may exist in 
org/apache/guacamole/auth/jdbc/user/UserMapper.xml
Oct 18 12:26:22 apps9 server[82442]: ### The error may involve 
org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
Oct 18 12:26:22 apps9 server[82442]: ### The error occurred while executing a 
query
Oct 18 12:26:22 apps9 server[82442]: ### Cause: java.sql.SQLException: No 
suitable driver found for jdbc:mysql://localhost:3306/dbname
Oct 18 12:26:22 apps9 server[82442]: 12:26:22.650 [http-nio-8080-exec-6] ERROR 
o.a.g.rest.RESTExceptionMapper - Unexpected internal error:
Oct 18 12:26:22 apps9 server[82442]: ### Error querying database.  Cause: 
java.sql.SQLException: No suitable driver found for 
jdbc:mysql://localhost:3306/dbname
Oct 18 12:26:22 apps9 server[82442]: ### The error may exist in 
org/apache/guacamole/auth/jdbc/user/UserMapper.xml
Oct 18 12:26:22 apps9 server[82442]: ### The error may involve 
org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
Oct 18 12:26:22 apps9 server[82442]: ### The error occurred while executing a 
query
Oct 18 12:26:22 apps9 server[82442]: ### Cause: java.sql.SQLException: No 
suitable driver found for jdbc:mysql://localhost:3306/dbname
Oct 18 12:26:22 apps9 server[82442]: 12:26:22.650 [http-nio-8080-exec-6] DEBUG 
o.a.g.rest.RESTExceptionMapper - Unexpected error in REST endpoint.
Oct 18 12:26:22 apps9 server[82442]: 
org.apache.ibatis.exceptions.PersistenceException:
Oct 18 12:26:22 apps9 server[82442]: ### Error querying database.  Cause: 
java.sql.SQLException: No suitable driver found for 
jdbc:mysql://localhost:3306/dbname
Oct 18 12:26:22 apps9 server[82442]: ### The error may exist in 
org/apache/guacamole/auth/jdbc/user/UserMapper.xml
Oct 18 12:26:22 apps9 server[82442]: ### The error may involve 
org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
Oct 18 12:26:22 apps9 server[82442]: ### The error occurred while executing a 
query
Oct 18 12:26:22 apps9 server[82442]: ### Cause: java.sql.SQLException: No 
suitable driver found for jdbc:mysql://localhost:3306/dbname
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:156)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.base/java.lang.reflect.Method.invoke(Method.java:566)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.session.SqlSessionManager$SqlSessionInterceptor.invoke(SqlSessionManager.java:355)
Oct 18 12:26:22 apps9 server[82442]: #011at 
com.sun.proxy.$Proxy40.selectOne(Unknown Source)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.session.SqlSessionManager.selectOne(SqlSessionManager.java:164)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:87)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
Oct 18 12:26:22 apps9 server[82442]: #011at 
com.sun.proxy.$Proxy44.selectOne(Unknown Source)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.guacamole.auth.jdbc.user.UserService.retrieveAuthenticatedUser(UserService.java:398)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.guacamole.auth.jdbc.JDBCAuthenticationProviderService.authenticateUser(JDBCAuthenticationProviderService.java:83)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.guacamole.auth.jdbc.InjectedAuthenticationProvider.authenticateUser(InjectedAuthenticationProvider.java:76)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.guacamole.extension.AuthenticationProviderFacade.authenticateUser(AuthenticationProviderFacade.java:202)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.guacamole.rest.auth.AuthenticationService.authenticateUser(AuthenticationService.java:132)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.guacamole.rest.auth.AuthenticationService.getAuthenticatedUser(AuthenticationService.java:235)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.guacamole.rest.auth.AuthenticationService.authenticate(AuthenticationService.java:391)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.guacamole.rest.auth.TokenRESTService.createToken(TokenRESTService.java:174)
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.base/java.lang.reflect.Method.invoke(Method.java:566)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:256)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.internal.Errors.process(Errors.java:292)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.internal.Errors.process(Errors.java:274)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.internal.Errors.process(Errors.java:244)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:359)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
Oct 18 12:26:22 apps9 server[82442]: #011at 
com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290)
Oct 18 12:26:22 apps9 server[82442]: #011at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280)
Oct 18 12:26:22 apps9 server[82442]: #011at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184)
Oct 18 12:26:22 apps9 server[82442]: #011at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:89)
Oct 18 12:26:22 apps9 server[82442]: #011at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
Oct 18 12:26:22 apps9 server[82442]: #011at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
Oct 18 12:26:22 apps9 server[82442]: #011at 
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:179)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:154)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1786)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.base/java.lang.Thread.run(Thread.java:829)
Oct 18 12:26:22 apps9 server[82442]: Caused by: java.sql.SQLException: No 
suitable driver found for jdbc:mysql://localhost:3306/dbname
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
Oct 18 12:26:22 apps9 server[82442]: #011at 
java.sql/java.sql.DriverManager.getConnection(DriverManager.java:189)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:229)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:224)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.datasource.unpooled.UnpooledDataSource.getConnection(UnpooledDataSource.java:102)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.guacamole.auth.jdbc.DynamicallyAuthenticatedDataSource$1.getConnection(DynamicallyAuthenticatedDataSource.java:74)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(PooledDataSource.java:452)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.datasource.pooled.PooledDataSource.getConnection(PooledDataSource.java:100)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java:145)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:67)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:348)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.executor.BatchExecutor.doQuery(BatchExecutor.java:91)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90)
Oct 18 12:26:22 apps9 server[82442]: #011at 
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)
Oct 18 12:26:22 apps9 server[82442]: #011... 74 common frames omitted

________________________________
From: Michael Jumper <mjum...@apache.org>
Sent: Thursday 3 October 2024 18:27
To: user@guacamole.apache.org <user@guacamole.apache.org>
Subject: Please join us in testing "staging/1.6.0"

Hello fellow Guacamole enthusiasts,

We recently merged a massive rewrite of the way guacamole-server handles
rendering that *should* improve responsiveness, framerate, and bandwidth
usage in several cases. The change specifically affects the VNC and RDP
protocol support.

If anyone is interested in testing, please do. The branch containing
these changes is "staging/1.6.0":

https://github.com/apache/guacamole-server/tree/staging/1.6.0

These changes do not depend on anything in guacamole-client, but please
by all means test the "staging/1.6.0" branch of that, too, if you feel
up to the task.

Beware that part of these changes adds support for the RDP "Graphics
Pipeline Extension" (GUACAMOLE-377). This is generally a good thing, but
testing has shown that XRDP's implementation of this uses lossy
compression more often than the Windows RDP implementation, resulting in
the new scroll detection not recognizing things as well as otherwise. If
using XRDP, I would recommend using the "staging/1.6.0" version of
guacamole-client, as well, and selecting the "Disable Graphics Pipeline
Extension" option in the connection settings. It's otherwise enabled by
default.

- Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@guacamole.apache.org
For additional commands, e-mail: user-h...@guacamole.apache.org

IT Solutions Email Disclaimer - This e-mail and any files transmitted with it 
contain information which may be confidential and which may also be privileged 
and is intended solely for the use of the individual or entity to whom it is 
addressed.  Unless you are the intended recipient you may not copy or use it, 
or disclose it to anyone else.  Any opinions expressed are that of the 
individual and not necessarily that of IT Solutions Ltd. If you have received 
this e-mail in error please notify the sender by return. For further 
information on IT Solutions visit https://www.itsolutions.ie


IT Solutions Email Disclaimer - The information contained in this email 
message, including any files transmitted with it, is confidential and may be 
legally privileged.

This e-mail is intended only for the personal attention of the stated 
addressee(s). Any access to this email, including any files transmitted with 
it, by any other person is unauthorised. If you are not an addressee, you must 
not disclose, copy, circulate or in any other way use or rely on the accuracy 
or completeness of the information contained in this email or any files 
transmitted with it.

If you have received this email in error, please inform the sender immediately 
and delete it and all copies from your system. You may not forward this email 
without the permission of the authorised sender.

The views expressed in this email are those of the author, and do not 
necessarily represent the views of IT Solutions or its affiliates. Internet 
communications are not secure and IT Solutions cannot therefore accept legal 
responsibility for the contents of this message nor for any damage caused by 
viruses. This email has been scanned at the originating end. For further 
information on IT Solutions visit https://www.itsolutions.ie

Reply via email to