在Docker中安装并修改MySQL中的 my.cnf 配置文件

win10下docker安装mysql并修改配置 这里写自定义目录标题mysql安装进入容器内安装vim编辑器vim的简单使用修改配置文件修改出错 mysql安装 由于之前的项目生产环境用的就是mysql5.7所以安装的时候我用的镜像版本是mysql5.7.30。 docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.30 之后链接mysql用的用户名就是root密码就是123456 进入容器内 docker exec -it mysql /bi 阅读详情

前言

前期经过MySQL主从复制之后,发现数据库的读写非常慢,而且经常发生MySQL连接数过小,导致整个数据库崩溃的情况。通过修改MySQL中的 my.cnf 配置文件参数,以达到MySQL关系型数据库最大性能的合理利用。
本文共分为三个方面进行讲述:

一、Docker安装MySQL

查看mysql镜像
	sudo docker search mysql
	
拉取mysql
	sudo docker pull mysql
#默认最新版(可自定义5.7)
	
创建容器,并测试,参考链接
 	sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

二、连接MySQL

docker中进入mysql容器的方法
	1)sudo docker exec -it 容器名称 bash
	
	2)mysql -uroot -p
	
	3)use mysql
	
	4)select host, user from user;查看root用户
	
	判断root是否存在一个,如果有两个先删除delete from user where host="%" and user="root";
	
	再修改 update user set host = '%' where user = 'root';
	
	刷新权限 FLUSH PRIVILEGES;
	
	授予远程权限 alter user 'root'@'%' identified with mysql_native_password by '123456';

三、修改配置文件参数

1.下载完成之后 ,输入 docker ps 查看镜像

2.启动容器:docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql ,docker ps 可以查看状态

3.进入MySQL容器内:docker exec -it 容器名 /bin/bash (PS:其实这个跟Linux修改文件一样,有好多方法,我用的是最笨的一种。)将本地文件替换容器文件

4.我这里要修改的是MySQL里面的 my.cnf文件。可先用 ls查看目录文件(PS: ls 命令显示当前目录的内容)

5.tail my.cnf (PS:tail 命令可用于查看文件的内容)

6.运行 vim 代码

vim /etc/mysql/my.cnf

7.运行上述 vim 代码之后可能会发现没有执行成功,因为docker容器中没有 vim 编辑器,所以要自己安装 vim编辑器(vim 安装方法详情可见文章末尾附录)

8.进入 my.cnf 文件

image.png
9.根据自己的需求进行配置增加或者修改,我修改的配置如下(可供参考)

10.附上MySQL数据库性能优化的部分关键参数

关键参数一:back_log

要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。

back_log 值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。 试图设定back_log高于你的操作系统的限制将是无效的。

当你观察你的主机进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时,就要加大 back_log 的值了。默认数值是50,我把它改为500。

关键参数二:interactive_timeout

服务器在关闭它前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对 mysql_real_connect()使用 CLIENT_INTERACTIVE 选项的客户。 默认数值是28800,我把它改为7200。

关键参数三:key_buffer_size

索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重 写),到你 能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。默认数值是8388600(8M),我的MySQL主机有2GB内存,所以我把它改为 402649088(400MB)。

关键参数四:max_connections

允许的同时客户的数量。增加该值增加 mysqld 要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 Too many connections 错误。 默认数值是100,我把它改为1024 。

关键参数五:record_buffer

每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可能想要增加该值。默认数值是 131072(128K),我把它改为16773120 (16M)

关键参数六:sort_buffer

每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。默认数值是2097144(2M),我把它改为 16777208 (16M)。

关键参数七:table_cache

为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。MySQL对每个唯一打开的表需要2个文件描述符。默认数值是64, 我把它改为512。

关键参数八:thread_cache_size

可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高 性能可 以这个变量值。通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用。我把它设置为 80。

关键参数九:wait_timeout

服务器在关闭它之前在一个连接上等待行动的秒数。 默认数值是28800,我把它改为7200。

注:参数的调整可以通过修改 /etc/my.cnf 文件并重启 MySQL 实现。这是一个比较谨慎的工作,上面的结果也仅仅是我的一些看法,你可以根据你自己主机的硬件情况(特别是内存大小)进一步修改。

11.修改完成之后使用 :wq 进行保存

12.重新使用 tail 进行查看文件是否正确修改

tail /etc/mysql/my.cnf

13.配置文件修改成功后,就可以尽情地使用MySQL啦!(PS:关系型数据库由于被创造设计初衷的限制,在海量数据处理以及多表函数查询时会遇到 I/O 性能瓶颈。因此具备分布式、高性能、高可靠等特性的非关系型数据库(NoSQL)逐渐被人们所了解并使用,弥补了关系型数据库性能方面的先天性不足,在存储非结构化数据时有巨大优势。主流NoSQL数据库有:Redis、MongoDB和HBase等)

附录

vim 编辑器的下载与安装

在使用 docker容器时,有时候里边没有安装vim,运行vim命令时提示说:vim: command not found,这个时候就需要安装vim,当运行以下安装命令时:

apt-get install vim

Error报错提示:

Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package vim

根据 apt 命令下载并安装软件的惯例,我们需要对 apt进行更新!!!

apt-get update

上述命令是为了同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
等更新完毕以后再运行命令:

apt-get install vim

vim /etc/mysql/mysql.conf.d/mysqld.cnf

1.apt-get install vim

image.png

2.apt-get update

image.png
3.完成 vim 编辑器安装

image.png

docker运行MySQL如何修改配置文件 最近撸代码时,报: on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 阅读详情

相关推荐

官方mysql的docker镜像,自定义配置文件my.cnf

官方mysql的docker镜像,自定义配置文件启动,附件中是自定义的配置文件,里面配置了端口和各种其他参数,便于维护

docker mysql -自定义my.cnf

创建完docker mysql 数据库后发现找不到配置文件my.cnf# MySQL配置文件mycnf# 服务器标识[mysqld]# 设置服务器的默认字符集为utf8# 设置服务器默认的存储引擎为InnoDB# 设置服务器的处理器缓冲区大小为256M# 设置服务器的最大连接数为1000# 设置服务器的日志文件路径和名称# 设置服务器的错误日志级别为警告# 设置服务器的数据目录# 设置服务器的临时文件路径# 设置服务器的超时时间为600秒。

sa_dan的博客 5309

智能环境感知:STM32多传感器数据融合与报警策略设计

本文详细介绍了基于STM32的多传感器数据融合系统设计,整合DHT11温湿度传感器、MQ-2烟雾检测和光照强度检测模块,通过智能算法实现环境感知与动态报警。系统采用数据滤波、多传感器校验和自适应阈值策略,显著提升监测精度与可靠性,并通过OLED显示屏提供清晰的多级报警界面。

plant的博客 200

docker上面安装mysql

docker run --privileged -d -p 3306:3306 -v /data/dockerData/mysql3306/conf/my.cnf:/etc/mysql/my.cnf -v /data/dockerData/mysql3306/logs:/logs -v /data/dockerData/mysql3306/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=数据库密码 --name mysql3306 mysql:5.7。

qq_40453972的博客 2300

STC8单片机高精度EV1527解码实战:定时器捕获+状态机抗干扰方案

EV1527是一种广泛应用于433MHz无线遥控的曼彻斯特编码协议,其核心在于对脉宽时序(如同步头、逻辑0/1)的微秒级精确识别。传统外部中断+延时判别方式受MCU中断延迟、编译优化及环境噪声影响,极易导致误码;而基于硬件定时器输入捕获的解码方案,将时间测量交由硬件完成,显著提升时序鲁棒性与温度/电压适应性。该技术适用于STC8等无专用无线解码外设的8位单片机,在智能开关、晾衣架、车库门控等IoT终端中实现低至0.003%的稳定误码率。本文聚焦STC8H系列利用T1定时器下降沿捕获与有限状态机协同解码EV1

weixin_29188997的博客 180

暴力破解pdf文档密码

相信小伙伴们都遇到这种情况;你收到了一些标题很吸引人的pdf文档 或者是重要数据泄露 学习资料总结,再或者是某机构的押题密卷,打开pdf却提示你要输入密码 因为不知道密码 只能弃罢。我就遇到过这种情况 网友发来了标题为某天一的押题密卷 ,我也想看看这个卷子的题怎么样,因为被设置了密码 我尝试用6到10位的纯数字组合来暴力破解这个pdf,结果三 四个小时都没找到正确的密码。有些网友为破解这个密码 请某宝某多来破解 也都没有破解成功。

shelter1234567的博客 1万+

docker安装mysql_使用Docker安装MySQL

我的安装环境:Centos7(内核版本必须是3.10以上)内核版本查询命令 : uname -r准备好安装环境后执行官方提供的自动安装脚本,安装docker:curl -sSL https://get.daocloud.io/docker | sh安装完成后可以使用 docker info 检查是否安装正常然后使用docker images 列出镜像,如果报错说docker没启动则使用 syst...

weixin_39943220的博客 436

《AFSim 2.9中文参考手册》

本栏目将对《AFSim 2.9中文参考手册》进行持续更新,欢迎关注交流!对本文或者AFSIM相关内容感兴趣的朋友,可私心联系作者。《AFSim 2.9中文参考手册》内容概览。

henggesim的博客 1万+

Mysql源码编译和调试debug

下载源码 直接从github 上下载了源码。git 地址:https://github.com/mysql/mysql-server 下载路径如:/work/mysql-server 编译 依赖 mac系统依赖环境 cmake,boost cmake 安装 brew install cmake boost下载:https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.gz 编译 ##mysql目录 cd /work/mys

白猿的博客 1872

[漏洞剖析]JeecgBoot queryFieldBySql注入与JDBC连接滥用:从内存马植入到RCE的完整攻击链

本文深度剖析了JeecgBoot框架中queryFieldBySql接口的SQL注入漏洞及其引发的完整攻击链。攻击者利用该漏洞,通过Freemarker SSTI植入隐蔽的内存马,并进一步滥用JDBC连接测试功能,借助H2数据库特性实现远程命令执行(RCE),揭示了低代码平台中功能滥用与安全配置疏忽带来的严重风险。

weixin_29232121的博客 115

混响效果的编程实现:Schroeder混响模型与Moorer型混响

Schroeder混响模型是由Manfred R. Schroeder在1962年提出的,它基于一系列串联的反射器(Allpass Comb Filters)和并联的反射器(Feedback Comb Filters)构成。Schroeder混响模型是由Manfred R. Schroeder在1962年提出的,它基于一系列串联的反射器(Allpass Comb Filters)和并联的反射器(Feedback Comb Filters)构成。通过调整各个反射器和全通滤波器的参数,可以实现不同的混响效果。

2301_79326857的博客 1081

Docker 中,对 mysql 配置文件的修改操作

背景 前面,我进行了 Replication 以及 PXC 集群的配置操作 但是发现,实际工作中 一定会对 mysql 的配置参数进行修改的 比如:max_connections 但是,你会发现,docker 因为是虚拟环境的原因 我们不能直接在 Linux 中进行配置文件的查找 如果,有时间 强烈建议,学习一下 Docker 操作技巧 毕竟我也是接触中遇到问题才会找途径解决 在此,记录一下操作过程,希望对你有所帮助 … 操作步骤 此处,以修改参数 "max_connections" 为例,

u011415782的专栏 4089

Claude Code 学习笔记之一:理解 Agentic Loop 与内置工具

本文介绍了Claude Code这一终端智能助手的工作原理与使用方式。作者从ABAP开发经验出发,指出学习Claude Code的高级用法具有长期价值。文章详细解析了Claude Code的Agentic Loop机制:通过大语言模型进行推理,借助各类工具执行任务,并循环收集上下文、执行操作、验证结果三个步骤。系统阐述了Claude Code支持的五大类工具及其扩展方式,说明了其访问本地资源的范围和自治处理能力,同时介绍了权限模式等安全机制。最后提供了从小任务开始、充分探索、及时引导、使用CLAUDE.md

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 544

docker 修改mysql中的my.cnf文件

1.进入容器 docker exec -it 627a2368c865 /bin/bash 2.cd /etc/mysql ,vi my.cnf 可能在容器中需要安装 vim apt-get update apt-get install vim 3.修改my.cnf文件 [mysqld] ## 同一局域网内注意要唯一 server_id=100 ## 开启二进制日志功能,可以...

想吃大盘鸡 1万+

移动机器人路径规划中噪声环境下的鲁棒性测试仿真

设计一个二维或三维环境模型,包括静态障碍物和可能存在的动态障碍物。

amy_mhd的博客 125

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Docker下修改容器的配置文件(以MySQL为例)

1、找到镜像对应的ID 使用docker ps命令找到对应的镜像id 2、根据镜像id进入到对应文件夹 执行命令:docker exec -it 镜像id /bin/bash 3、进入对应目录(以MySQL为例) 执行命令cd /etc/mysql 4、下载vim 这里要下载vim,不然无法对文件进行修改 具体执行如下两个命令:apt-get update、apt-get install v...

热爱永不过时! 6039

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Docker安装MySQL主从配置

实际生产中,当数据量比较多时,特别是读多写少的应用中,常常需要用到数据库的主从架构,用于减轻主库的读请求压力,增强可用性。Docker 安装 MySQL 5.7.30-优快云博客。

qq_36124713的博客 1920

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

修改docker环境中的mysql配置文件

查看容器id docker ps 进入容器内部 docker exec -it 容器ID bash 找到修改的文件目录 默认路径: cd /etc/mysql 如果run容器时 使用-v 挂载 根据挂载目录找到my.cnf配置文件 安装vim 如果不安装vim在使用vim的时候会报找不到,在修改docker中mysql的配置文件,无法使用vi命令。docker内部是 乌班图系统,使用乌班图的安装命令: apt-get update apt-get install vim 修改my.cnf配置文

u010797364的博客 1329

Docker下修改Mysql配置文件

docker 中修改mysql配置文件 1. 查出mysql容器id docker ps 2. 进入容器 docker exec -it [容器id/容器名] /bin/bash 3. 查看my.cnf文件是否存在 cd /etc/mysql/ ls 列出目录:conf.d my.cnf my.cnf.fallback 4. 编辑my.cnf文件 vim my.cnf 报错:vim: command not found vi my.cnf 报错:vi: comma

WuTong_Li 1517

docker下mysql连接数过多处理及mysql映射docker目录设置

突发mysql连接数过多导致应用访问数据库失败,应急处理修改最大连接数,以及衍生的docker映射mysql目录设置

altonw_lee的博客 1184

docker中安装 mysql5.5

1、docker下安装mysql 1.获取mysql镜像: docker pull mysql:5.5 2.创建mysql容器: docker create --name mysql -v /data/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.5 解释: –name mysql 指定是容器的名称 -v /data/mysql-data:/var/lib/mysql 将主机目录/data/mysql

weixin_43974466的博客 1246

docker下修改mysql配置文件

第一步: 找到要修改的镜像 docker ps 第二步: 进入要修改的镜像 docker exec -it e1066fe2db35 /bin/bash 第三步: 进入要修改的文件目录 cd /etc/mysql 第四步: 安装vim 如果不安装vim在使用vim的时候会报找不到。 apt-get update apt-get install vim 第五步: 修改my.conf配置文件 第六...

187

用docker对mysql打包_docker重新打包MySQL5.7镜像

1:先下载MySQL镜像# docker pullmysql:5.72:运行镜像生成容器#docker run --name mysql -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=123456-d mysql:5.73:查看生成最新的容器# docker ps -lCONTAINER IDIMAGECOMMA...

weixin_33255691的博客 977

使用Docker安装mysql,挂载外部配置和数据

1、挂载外部配置和数据安装 mkdir /opt mkdir /opt/mysql mkdir /opt/mysql/conf.d mkdir /opt/mysql/data/ 创建my.cnf配置文件 touch /opt/mysql/my.cnf my.cnf添加如下内容: [mysqld] user=mysql character-set-server=utf8 default_authentication_plugin=mysql_native_password secure_file_priv=

xwnxwn的专栏 547

docker容器内修改文件

1、找到容器对应的ID 使用docker ps命令找到对应的镜像id 2、根据容器id进入到对应文件夹 执行命令:docker exec -it 镜像id /bin/bash 3、进入对应目录(以MySQL为例) 执行命令cd /etc/mysql 4、下载vim 这里要下载vim,不然无法对文件进行修改具体执行如下两个命令:apt-get update、apt-get install vim...

大家好,我是云村的王子 406
上一篇: JavaScript之数组去重
下一篇: Windows下Arthas的简单使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值