通过docker启动mysql
一、启动mysql
1.下载mysql
docker pull mysql:5.7
# 具体可以去dockerhub中查找想要的版本
2.启动mysql
docker run -d -p 3306:3306 mysql:5.7 --name mysql01 -e MYSQL_ROOT_PASSWORD="123" -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/my.cnf:/etc/mysql/my.cnf
-d : 后台启动
-p:端口映射
--name:给容器起个名字
-v : 将宿主机和容器内的文件进行数据映射
-e: 指定环境变量
在实际生产环境中,通常还要加上--restart=always ,只要docker重新启动,那么容器就重新启动。
3.连接mysql
可以通过相应的数据库连接软件直接去连接启动的docker.
如果连接不上,那么可以进入容器内部:
# 进入容器内部
docker exec -it mysql01 mysql -uroot -p123 # 授权 GRANT ALL ON *.* TO 'root'@'%';
# 添加用户
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
更改root的密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新
flush privileges;
4.进行数据备份
通过数据卷映射是将整个mysql中的文件系统映射到宿主机上,这种情况下如果要将这个容器内的数据库数据备份后迁移到另外一台服务器上,会将整个mysql的文件系统都要迁移过去,这里面可能有一些问题,比如迁移中如果某些文件少了,就可能启动不来,或者说mysql的版本不一致,也会导致出现问题。因此,通过可以通过下面的命令来进行数据备份:
a.利用mysql的mysqldump
mysqldump -uroot -p123 --all-databases > /root/mysql/test.sql
--all-databases:所有数据库和库中的表
具体的操作:(docker中进行mysql的数据备份)
docker exec id(msyql容器id) sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql
备份指定库数据:
docker exec id(msyql容器id) sh -c 'exec mysqldump databases 库名 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/ehs.sql
备份指定库数据不要数据:
docker exec id(msyql容器id) sh -c 'exec mysqldump --no-data --databases 库名 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/ehs_test.sql
b.使用navicat进行数据备份
使用navicat进行数据备份
5.数据备份后,将数据还原
docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql
6.数据mysql中数据卷持久化对应的文件目录
在docker启动后,要知道mysql(5.7)有哪些目录需要持久化。
docker内的mysql:
/var/lib/mysql ----->./datadir # 基础信息 /etc/mysql ------> ./mysql # 配置文件 /var/log -------> ./log # 日志
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix