因为自己部署服务内存比较小,而mysql在docker初始化就占500M,所以可优化其占用内存大小

一.安装mysql

1.下载好镜像

1
docker pull mysql:8.0.18

2.创建MySQL容器

1
docker run -id --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.18

3.查看安装情况

1
docker ps -l

二.修改mysql占用内存大小

因为自己部署服务内存比较小,而mysql在docker初始化就占500M,所以可优化其占用内存大小

1.查看运行内存

1
docker stats
1
2
3
4
5
[root@ ~]# docker stats
CONTAINER ID   NAME        CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
a28d702be74a   mysql       0.34%     400.49MiB / 1.694GiB  24.33%     0B / 0B           19.3MB / 14.1MB   38
c8adbf02c7a5   kafka       0.30%     435.7MiB / 1.694GiB   25.11%    1.77MB / 2.93MB   130MB / 86kB      65
92187cc1f68e   zookeeper   0.07%     89.78MiB / 1.694GiB   5.18%     2.93MB / 1.77MB   99.5MB / 127kB    19

     2.进入mysql容器终端

1
docker exec -it mysql bash

3.切换进入/etc/mysql/conf.d 目录

1
 cd /etc/mysql/conf.d

4.我们需要进入容器当中进行修改容器里面的配置文件,可能有的服务器是没有安装vim的,所以我们没有的需要安装的

1
apt-get install vim

5.docker进入mysql容器内,进入/etc/mysql/conf.d 目录执行 vim docker.cnf

1
vim docker.cnf

6.在对应文件后面添加下面的参数

1
2
3
4
5
6
performance_schema_max_table_instances=400  
table_definition_cache=400    
performance_schema=off    
table_open_cache=64    
innodb_buffer_pool_chunk_size=64M    
innodb_buffer_pool_size=64M   

各参数对应的意义为

1
2
3
4
5
6
7
[mysqld]
performance_schema_max_table_instances=400  
table_definition_cache=400    #缓存
performance_schema=off    #用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源东西
table_open_cache=64    #打开表的缓存
innodb_buffer_pool_chunk_size=64M    #InnoDB缓冲池大小调整操作的块大小
innodb_buffer_pool_size=64M    #InnoDB 存储引擎的表数据和索引数据的最大内存缓冲区大小

7.退出

1
exit

8.重启mysql容器

1
2
docker stop mysql
docker start mysql

9.观察修改后的内存情况

1
docker stats

Pasted image 20230815152734