51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

DataEase v2 使用外部数据库常见报错解决

DataEase v2 使用外部 MySQL 8 数据库安装时,需要注意外部数据库的安装配置和推荐的配置一致,如果出现如下报错,可检查数据库配置对应部分是否出错。

外置 MySQL 配置参考如下。

[mysqld]
datadir=/var/lib/mysql

default-storage-engine=INNODB
character_set_server=utf8
lower_case_table_names=1
table_open_cache=128
max_connections=2000
max_connect_errors=6000
innodb_file_per_table=1
innodb_buffer_pool_size=1G
max_allowed_packet=64M
transaction_isolation=READ-COMMITTED
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800
innodb_flush_log_at_trx_commit=0
sync_binlog=0
group_concat_max_len=1024000
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
skip-name-resolve


\[mysql\]
default-character-set=utf8

`[mysql.server]
default-character-set=utf8`

1 报错如下 {#1-%E6%8A%A5%E9%94%99%E5%A6%82%E4%B8%8B}

error code [3065]; Expression #1 of ORDER BY clause is not in SELECT list;

Request failed with status code 400;

2 解决方法 {#2-%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95}

查看 sql_mode 是否包含 ONLY_FULL_GROUP_BY ,如有包含,按选择下列方法之一修改即可。

注意:如果该数据库被其它服务使用,修改可能或造成其它服务出现问题。

SELECT @@GLOBAL.sql_mode;

方法一全局会话修改

对所有新连接有效,需要重启 DataEase 服务;

SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

方法二 MySQL 的配置文件修改

打开 MySQL 的配置文件,路径通常是 /etc/my.cnf 或 /etc/mysql/my.cnf。在 [mysqld] 部分添加或修改 sql_mode;

[mysqld]sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

赞(0)
未经允许不得转载:工具盒子 » DataEase v2 使用外部数据库常见报错解决