我正在使用 Netbeans 8.2、Glassfish 4.1 和 MariaDB 开发企业应用程序,所有这些都在 Ubuntu 18.04 上。
但是,在与 DB 建立所有连接后,Glassfish 会返回此异常:
Internal Exception: java.sql.SQLException: Unknown system variable 'OPTION'
正如我所见,
SET OPTION
命令在 MySQL 5.1 中被弃用,最终在 MySQL 5.6 中被删除。 MariaDB 在他们的 10.0 版本中做了同样的事情。 Glassfish 4.1 似乎仍然使用此命令。这导致我有两个主要的解决方案:
有人可以给我一些建议吗?谢谢!
最佳答案
正确的做法是使用支持现代 SQL 语法的软件版本。即使这不是最简单的解决方案,它也很可能在 future 得到返回。
解决此问题的另一种方法是使用 MariaDB MaxScale位于您的应用程序和数据库之间,并将其配置为翻译 SET OPTION
SQL 到正确的 SET
形式。这可以通过 Regex filter 来完成。这意味着像这样的情况。
这是一个用于小型 SQL 转换服务的 MaxScale 配置,翻译为 SET OPTION
至SET
:
[maxscale]
threads=auto
[my-database]
type=server
address=hostname-of-my-server
port=3306
protocol=MariaDBBackend
[database-monitor]
type=monitor
module=mariadbmon
servers=my-database
user=<username used to monitor the server>
passwd=<password for the user>
monitor_interval=5000
[replace-option]
type=filter
module=regexfilter
match=SET OPTION
replace=SET
[routing-service]
type=service
router=readconnroute
servers=my-database
user=<username used to monitor the server>
passwd=<password for the user>
filters=replace-option
[routing-listener]
type=listener
service=routing-service
protocol=MariaDBClient
port=3306
关于ubuntu - Glassfish 4.1 和 MariaDB 的麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447320/