• docker修改mysql配置文件


    今天在用docker启动一个5.7的数据库在建表时候遇到下面问题:

    [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
    
    • 1

    修改一下sql_model即可。

    大家接下来就跟着我看一下这个docker怎么修改mysql内部的配置。
    我先是在百度上随便收了一下docker修改mysql配置,结果真我震惊了,都是来回抄一个,还没给我解决,更过分的是还有的文章只抄了一半!!!所以我准备自己写一个真正快速解决问题的一篇关于修改dokcer里面的mysql的文章。

    1:首先我在docker上快速启动了一个mysql

    docker run -d -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 --name mysql-docker1 mysql:5.7
    
    • 1

    2:在宿主机上新建一个文件夹(/home/mysql/mysql_conf)用来复制docker内部的配置文件
    3:运行:docker cp mysql-docker:/etc/mysql/mysql.conf.d/mysqld.cnf /home/mysql/mysql_conf 把容器内部的配置文件cp到刚才建的文件夹下面。

    4:在宿主机修改 mysqld.cnf 文件 加上下面的代码

    sql_mode="STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_ENGINE_SUBSTITUTION"
    
    • 1

    5:把刚才那个mysql容器删除两句命令:

    docker stop mysql-docker1  
    docker rm mysql-docker1  
    
    • 1
    • 2

    6:重新挂在启动一个新的实例:

    docker run -d -p 3306:3306  -v /home/mysql/mysql_conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql-docker mysql:5.7
    
    • 1

    至此解决问题。

  • 相关阅读:
    【数据结构】双向带头循环链表的实现
    MySQL中的COMPACT行格式
    机器学习 | MATLAB实现ELM极限学习机elmtrain参数设定
    批量删除所有文件名称中的英文字母
    性能测试【第三篇】Jmeter的使用
    使用Python,dlib进行对象实时追踪
    【VulnHub靶场】Hackable: III
    【数据结构】什么是算法
    Android学习笔记 2. Button
    论人类下一代语言的可能—4.2算术后的发展
  • 原文地址:https://blog.csdn.net/m0_54864585/article/details/126327383