一、docker 安装 mysql
1.1 安装mysql
| sudo docker pull mysql:8.0.20 |
| mkdir -p /mydata/mysql/data |
| mkdir -p /mydata/mysql/conf |
| touch /mydata/mysql/my.cnf |
1.2 修改 mydata/mysql/my.cnf 下的信息
| vi /mydata/mysql/my.cnf |
| |
| 在my.cnf中添加如下信息 |
| [mysqld] |
| user=mysql |
| character-set-server=utf8 |
| default_authentication_plugin=mysql_native_password |
| secure_file_priv=/var/lib/mysql |
| expire_logs_days=7 |
| sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
| max_connections=1000 |
| lower_case_table_names = 1 |
| |
| [client] |
| default-character-set=utf8 |
| |
| [mysql] |
| default-character-set=utf8 |
二、docker 镜像挂载 mysql
2.1 挂载 mysql,指定容器,挂载目录
- # name指定容器名字 -v目录挂载 -p指定端口映射 -e设置mysql参数 -d后台运行
| sudo docker run --restart=always -p 3307:3307 --name mysql \ |
| -v /mydata/mysql/data:/var/lib/mysql \ |
| -v /mydata/mysql/conf:/etc/mysql/conf.d \ |
| -v /mydata/mysql/my.cnf:/etc/mysql/my.cnf \ |
| -e MYSQL_ROOT_PASSWORD=<密码> \ |
| -d mysql:8.0.20 |
2.2 输入 docker 命令,查看docker 挂载

2.3 mysql目录映射
| vi /mydata/mysql/conf/my.conf |
| |
| [client] |
| default-character-set=utf8 |
| [mysql] |
| default-character-set=utf8 |
| [mysqld] |
| init_connect='SET collation_connection = utf8_unicode_ci' |
| init_connect='SET NAMES utf8' |
| character-set-server=utf8 |
| collation-server=utf8_unicode_ci |
| skip-character-set-client-handshake |
| skip-name-resolve |
2.4 重启 mysql,并 设置docker 启动时自动启动mysql
| docker restart mysql |
| |
| docker update mysql --restart=always |
三、docker 镜像下修改 mysql 密码
3.1 使用命令,进入 docker 挂载下的 msyql 中
| docker ps -a |
| |
| -- CONTAINER ID |
| docker exec -it 'CONTAINER ID<msyql的挂载id>' /bin/bash |
| |

出现这个输入密码正确
3.2 进入 挂载的 mysql中
| 1. 输入命令,进入msyql 输入密码 |
| mysql -uroot -p |
| |
| 2. 修改密码: |
| ALTER USER 'root'@'%' IDENTIFIED BY '<new password>' PASSWORD EXPIRE NEVER; |
| ALTER USER 'root'@'localhost' IDENTIFIED BY '<new password>'; |
| |
| # 注:这两个密码需要一样 |
| |
| 3.退出,重启 docker挂载的mysql |
| exit; |
| |
| docker start 'CONTAINER ID<msyql的挂载id>' |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了