我想使用docker镜像启动MySQL本地实例。
到目前为止,我的docker-compose.yml
文件看起来像:
version: '3.3'
services:
db:
image: mysql:8
command: --default-authentication-plugin=mysql_native_password
volumes:
- ./mysql-dump:/docker-entrypoint-initdb.d
restart: always
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: sqlPractice
MYSQL_USER: admin
MYSQL_PASSWORD: admin
ports:
- '7142:3306'
security_opt:
- seccomp:unconfined
直到这一刻,一切正常。我的数据库已提供数据,但是在执行一次查询后,如下所示:
SELECT DISTINCT surname, name, data FROM exams e JOIN students s ON e.`id-student` = s.`id-student` WHERE passed='Y' AND (data, `id-centre`) = (SELECT MIN(data), e.`id-centre` FROM exams e JOIN centers c ON e.`id-center` = c.`id-center` WHERE e.passed='Y' AND c.`center-name` = 'IT Institute')
我收到如下错误:
ER_MIX_OF_GROUP_FUNC_AND_FIELDS: In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'sqlPractice.e.id-center'; this is incompatible with sql_mode=only_full_group_by
根据这篇文章:单击我想sql_mode
在我的参数中设置参数,docker-compose.yml
因为据称这将解决问题。
我的docker-compose.yml
命令参数中有两个参数,如下所示:
version: '3.3'
services:
db:
image: mysql:8
command:
- default-authentication-plugin=mysql_native_password
- sql_mode=""
volumes:
- ./mysql-dump:/docker-entrypoint-initdb.d
restart: always
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: sqlPractice
MYSQL_USER: admin
MYSQL_PASSWORD: admin
ports:
- '7142:3306'
security_opt:
- seccomp:unconfined
但是毕竟我在启动时收到错误
db_1 | /usr/local/bin/docker-entrypoint.sh: line 363: exec: default-authentication-plugin=mysql_native_password: not found
毕竟容器不能正常工作。
我要实现的是通过docker-compose.yml
在command
param中使用这两个参数配置MySQL实例,docker-compose.yml
以使我的Query像预期的那样工作。
我将非常感谢您提供有关实现目标的建议。
services:
db:
image: mysql:8
command: ['--sql_mode=', '--default-authentication-plugin=mysql_native_password']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句