Docker安装MYSQL8及内存优化

本文档详细介绍了如何使用Docker安装MySQL8.0,包括查看镜像、拉取镜像、创建并运行容器。还解决了MySQL8.0的远程连接问题,提到了由于加密规则变化导致的登录问题,并提供了修改加密规则的SQL命令。此外,还展示了如何限制MySQL容器内的内存使用,以及如何重启容器。最后,给出了内存限制的具体配置参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 参考官网,安装Docker

2 在安装前,上https://hub.docker.com/_/mysql/?tab=tags看一下MYSQL的版本

3 查找镜像

docker search mysql

4 拉取镜像(不指定版本号,下载mysql镜像,默认最新版本)

docker pull mysql:8.0

5 查看镜像

docker images

6 通过镜像创建容器并运行

docker run -di --name=mysql8.0 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

-di 代表守护式( 启动后台进程运行)                                                                                             

-p 代表端口映射,格式为 宿主机映射端口:容器运行端口

-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是 root 用户的登陆密码

7 登陆容器

docker ps查看是否安装成功;

进入容器 docker exec -it 容器id bash

注意

 无法远程连接的问题

注意 docker 中安装的最新的 mysql 版本是 8.0 版本
MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。因此我们需要修改 MySQL 用户登录的加密规则修改为mysql_native_password

# 进入mysql服务
#  -u 用户名
#  -p 登录密码
mysql -uroot -p123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

8 限制内存

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

安装vim(可选)

  • apt-get update

  • apt-get install vim
[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 存储引擎的表数据和索引数据的最大内存缓冲区大小

重启mysql容器

docker stop mysql8.0

docker start mysql8.0

<think>好的,我现在需要帮用户在爱快环境中通过Docker安装MySQL。首先,我得确认用户的环境。爱快系统是基于Linux的,可能有一定的资源限制,比如存储和内存。用户之前问过直接在爱快安装MySQL的问题,现在转向Docker,可能希望更便捷或隔离环境。首先,我需要检查爱快系统是否支持Docker。根据引用[2],爱快支持ESXi安装,但Docker是否内置呢?可能需要用户先安装Docker环境。爱快系统本身可能没有预装Docker,所以步骤可能包括安装Docker,再部署MySQL。然后,安装Docker的步骤。在爱快系统中,可能需要通过命令行安装。考虑到爱快可能基于特定的Linux发行版,比如OpenWrt或其他嵌入式系统,安装Docker的方法可能有所不同。可能需要添加软件源,或者使用静态二进制包安装。接下来是拉取MySQL镜像。用户可能希望使用官方镜像,但需要注意版本选择,尤其是资源占用问题。之前用户提到过内存限制,所以可能需要推荐MySQL的轻量版本,比如5.7或者Alpine版本。 然后是运行容器的命令,包括端口映射、数据卷挂载、环境变量设置(如root密码)。需要确保数据持久化,避免容器重启数据丢失。同时,可能需要调整MySQL配置以适应路由器资源限制,比如innodb_buffer_pool_size等参数。权限设置也是关键,确保Docker容器有足够的权限访问宿主机目录。另外,防火墙设置可能需要开放端口,比如3306,但用户如果只在本地使用可能不需要。如果用户需要远程访问,可能需要额外配置,但之前的回答已经涉及过相关问题。最后,服务管理和开机启动,可能需要创建systemd服务或者通过爱快的自启动机制来确保容器随系统启动。另外,资源监控也是必要的,避免MySQL占用过多内存影响路由器性能。需要参考之前的回答,用户之前提到过爱快安装MySQL的步骤,现在通过Docker,可能更简化,但也要注意Docker的资源开销。需要提醒用户检查存储空间和内存是否足够,尤其是Docker镜像和容器运行所需的空间。可能的问题:用户是否已经安装Docker?爱快系统默认是否有Docker支持?如果没有,如何安装?可能需要指导用户先安装Docker引擎,再继续操作。另外,数据卷的路径是否正确,权限是否设置正确,避免容器启动失败。总结步骤应该是:安装Docker→拉取MySQL镜像→运行容器并配置 →验证安装→设置开机启动 →注意事项。同时,引用之前的注意事项,比如资源限制,备份方法等。</think>### 爱快系统中通过Docker部署MySQL的完整步骤 --- #### **一、环境准备** 1. **确认Docker支持** 爱快系统默认未集成Docker,需先通过SSH登录系统并验证内核版本: ```bash uname -a # 确认内核版本≥3.10(Docker要求) ``` 2. **安装Docker引擎** 若未安装Docker,可通过静态二进制包安装(适合嵌入式环境)[^2]: ```bash curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh --binary-release ``` --- #### **二、部署MySQL容器** 1. **拉取轻量级MySQL镜像** 建议选择资源占用较低的MySQL 5.7版本: ```bash docker pull mysql:5.7-alpine ``` 2. **创建数据存储目录** ```bash mkdir -p /opt/mysql_data && chmod 755 /opt/mysql_data ``` 3. **启动MySQL容器** ```bash docker run -d \ --name mysql \ -p 3306:3306 \ -v /opt/mysql_data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=your_password \ --restart=always \ mysql:5.7-alpine \ --innodb_buffer_pool_size=32M \ --key_buffer_size=8M ``` **参数说明**: - `-v`: 挂载数据目录实现持久化存储 - `--restart=always`: 容器随Docker服务自动重启 - 末尾追加MySQL配置参数优化内存占用[^1] --- #### **三、验证与连接** 1. **检查容器状态** ```bash docker ps | grep mysql # 确认STATUS为Up ``` 2. **进入容器执行SQL命令** ```bash docker exec -it mysql mysql -uroot -p ``` 3. **远程访问配置(可选)** 若需远程访问,需在MySQL中授权: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; ``` --- #### **四、资源管理** 1. **监控容器资源占用** ```bash docker stats mysql # 实时查看CPU/内存使用 ``` 2. **设置存储限制(可选)** 启动容器时添加资源限制参数: ```bash --memory=128m --memory-swap=256m # 限制内存为128MB ``` --- ### **注意事项** 1. **存储空间** 通过`df -h`确认`/opt`目录剩余空间≥500MB,避免数据库写入失败。 2. **备份策略** 定期备份挂载目录: ```bash tar -czvf mysql_backup_$(date +%F).tar.gz /opt/mysql_data ``` 3. **兼容性问题** 爱快系统若为32位架构,需更换32位兼容镜像(如`linuxserver/mysql`)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值