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


飞致云 发布于 2024-12-16 / 42 阅读 / 0 评论 /
DataEase v2 使用外部 MySQL 8 数据库安装时,需要注意外部数据库的安装配置和推荐的配置一致,如果出现如下报错,可检查数据库配置对应部分是否出错。 外置 MySQL 配置参考如下。 [mysqld] datadir=/var/lib/mysql default-storage-en

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 报错如下

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

Request failed with status code 400;

2 解决方法

查看 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'



是否对你有帮助?