首页 > 数据库 >Docker compose Mysql 8 sql_mode 配置及修改only_full_group_by docker sql_mode 'NO_AUTO_CREATE_USER&#

Docker compose Mysql 8 sql_mode 配置及修改only_full_group_by docker sql_mode 'NO_AUTO_CREATE_USER&#

时间:2023-03-20 13:55:43浏览次数:51  
标签:39 05 sql Server USER mysql mode

mysql默认的配置sql_mode包含ONLY_FULL_GROUP_BY,我们要去掉,网上找了好多帖子,大多数copy来copy去,说的乱七八糟,很无奈,最后折腾了半天才搞定,主要是注意2点
1、先明白你的mysql版本,mysql8是没有 NO_AUTO_CREATE_USER,所有Sql_mode中不能包含这一项
2、因为我是用docker-compose,最好不要修改原来镜像文件

一、增加用户配置文件

vim custom.cnf

文件内容

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

二、修改docker-compose 配置

version: '3'
services:
    mysql:
        container_name: "mysql"
        network_mode: "host"
        environment:
            MYSQL_ROOT_PASSWORD: "setYourPass"
        image: "mysql:latest" 
        restart: always
        volumes:
            - "./db:/var/lib/mysql"
            - "./custom.cnf:/etc/mysql/conf.d/custom.cnf" # 着重注意这一行
        ports:
            - "3306:33060"

重启容器

docker-compose restart

查看日志

docker logs mysql  -f

就能看到mysql启动的输出了,如下:

2020-05-19 05:39:16+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started.
2020-05-19 05:39:17+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2020-05-19 05:39:17+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started.
2020-05-19T05:39:17.476672Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2020-05-19T05:39:17.476830Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.18) starting as process 1
2020-05-19T05:39:17.999178Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-05-19T05:39:18.005713Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
2020-05-19T05:39:18.029171Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
2020-05-19T05:39:18.182854Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060

六、验证sql_mode是否生效
直接查询分析器执行下面任一命令,随意:

show variables like '%sql_mode';

show variables like '%sql_mode';
@@GLOBAL.sql_mode
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

可以看到输出的结果中已经没有only_full_group_by

转载至:http://events.jianshu.io/p/a3f6872bb245

标签:39,05,sql,Server,USER,mysql,mode
From: https://www.cnblogs.com/qianxiaoPro/p/17236028.html

相关文章

  • sqlplus: error while loading shared libraries: libsqlplus.so
    $sqlplus/assysdba报错如下:sqlplus:errorwhileloadingsharedlibraries:libsqlplus.so:cannotopensharedobjectfile:Nosuchfileordirectory(1)设置环境......
  • 【Hive进阶】-- Hive SQL、Spark SQL和 Hive on Spark SQL
    1.HiveSQL1.1基本介绍概念Hive由Facebook开发,用于解决海量结构化日志的数据统计,于2008年贡献给Apache基金会。Hive是基于Hadoop的数据仓库工具,可以将结构化数据映射为......
  • PostgreSQL temp table 全链路 实现原理
    文章目录​​背景​​​​使用​​​​实现​​​​创建表​​​​插入​​​​删除表​​背景表(table/relation)作为PostgreSQL数据库中最为常用的一种数据库对象,用户......
  • MySQL锁机制
        上文总结了MySQL的隔离级别,而隔离级别是通过锁机制实现的,所以针对锁机制展开详细描述。    首先介绍MySQL的锁可以分为:享/读/共享锁SharedLocks:针......
  • MySql前缀索引解析
    一、什么是前缀索引所谓前缀索引,说白了就是对文本的前几个字符建立索引(具体是几个字符在建立索引时去指定),比如以产品名称的前10位来建索引,这样建立起来的索引更小,查询效......
  • ShardingSphere5.0.0-Sharding-proxy MySql 读写分离
    一、关于ShardingSphere 官网:​​ApacheShardingSphere​​官方文档:​​概览::ShardingSphere​​官方下载:​​Indexof/dist/shardingsphere​​本文使用版本:apache-sh......
  • django-rest-framework-从零开始-3-序列化类ModelSerializer的使用
    django-rest-framework-从零开始-3-序列化类ModelSerializer的使用1、前言我们之前提到创建序列化类,需要继承serializers.Serializer类,然后映射模型类的字段,然后重写crea......
  • MySQL事务隔离级别
        大家都知道,MySQL的事务特性ACID,那么本文就针对I(隔离性)做出详细说明。    MySQL中事务的隔离级别分为四大等级,分别是读未提交READUNCOMMIT、读提交RE......
  • ShardingSphere5.0.0-Sharding-proxy MySql 读写分离
    一、关于ShardingSphere 官网:ApacheShardingSphere官方文档:概览::ShardingSphere官方下载:Indexof/dist/shardingsphere本文使用版本:apache-shardingsphere-5.0.0......
  • mysql datetime is null
    mysql中时间字段datetime怎么判断为空和不为空一般为空都用null表示,所以一句sql语句就可以。select*from表名where日期字段isnull;这里要注意null的用法,不可以用=nu......