[英]How to set the SQL Mode on a MySQL connection in JetBrains DataGrip
[英]How do I set SQL mode in the JDBC connection string for MySQL 8?
我最近将我的 MySQL 实例从 5.7 升级到了 8.0。 我使用 JDBC 和一个如下所示的连接字符串连接到我的旧实例:
jdbc:mysql://[host:port]/[database]/?sessionVariables=sql_mode=''
这似乎是 MySQL Connector/J 中的一个错误。 我为它提出了一个错误报告:
在 JDBC 连接字符串中为 MySQL 8.0 试试这个:
jdbc:mysql://[host:port]/[database]/?sessionVariables=&&sql_mode=''
例如
jdbc:mysql://localhost:3306/dbName?sessionVariables=&&sql_mode=''
对于 JDBC 连接字符串中的 MySQL 7.0:
jdbc:mysql://[host:port]/[database]/?sessionVariables=sql_mode=''
例如
jdbc:mysql://localhost:3306/dbName?sessionVariables=sql_mode=''
我认为这可能是因为 sql_mode 中没有任何内容。
我在旧项目中遇到了同样的问题,设置
sessionVariables=sql_mode=''<\/code>在我的情况下不起作用。
它完全被忽略了。 最后我发现了这个错误报告<\/a>及其解释:
驱动程序需要启用 STRICT_TRANS_TABLES 模式以强制执行截断检查的 JDBC 合规性。
如果您不能使用 STRICT_TRANS_TABLES 作为 sql_mode 的一部分,那么您必须通过添加“jdbcCompliantTruncation=false”作为 URL 配置参数来禁用截断检查。
事实上,设置
jdbcCompliantTruncation=false<\/code>对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.