docker实战教程(十四):docker上安装mysql

1|0docker hub上查找mysql镜像


docker search mysql

2|0从docker hub上拉取mysql镜像到本地(指定版本为5.7)


docker pull mysql:5.7


3|0使用mysql 5.7镜像创建容器(也叫运行镜像)


3|1简单版


1.使用mysql镜像

# -e:设置环境,这里设置的是密码 # -d:后台运行 docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

如果执行过程中发现端口被占用,使用netstat -nplt找到对应的进程,kill -9杀掉进程即可

但是发现不起作用,因为再次使用netstat查看,发现mysqld服务还在,原来这个进程是服务器上的mysql,已经监听了服务器的3306端口,这时候把服务器mysqld服务关闭

这时候可以正常创建了

2.建库建表插入数据
进入容器

docker exec -it 2556d631382c /bin/bash

输入账号密码进入mysql

![](https://img2022.cnblogs.com/blog/1186367/202211/1186367-20221105175957018-1014353378.png) 创建数据库、数据表并插入数据 ![](https://img2022.cnblogs.com/blog/1186367/202211/1186367-20221105180220989-1238589636.png) 3.外部window连接运行在docker上的mysql容器实例服务 如果连不成功,检查linux服务器上的防火墙是否关闭 ![](https://img2022.cnblogs.com/blog/1186367/202211/1186367-20221105180722801-884982927.png) 4.问题 (1).插入中文数据试试,为什么会报错? ![](https://img2022.cnblogs.com/blog/1186367/202211/1186367-20221105181137033-967822841.png) docker上默认字符集编码隐患 ```linux SHOW VARIABLES LIKE 'character%';

(2).删除容器后,里面的mysql数据怎么办

3|2实战版


1.新建mysql容器实例

# --privileged=true 容器数据卷的开启 # 挂了三个容器卷 docker run -d -p 3306:3306 --privileged=true -v /root/mysql/log:/var/log/mysql -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7

2.新建my.cfg
通过容器卷同步给mysql容器实例

[root@k8scloude1 tmp]# cd /root/mysql/conf/ [root@k8scloude1 conf]# ls -l total 0 [root@k8scloude1 conf]# vim my.cnf [client] default_character_set=utf8 [mysqld] collation_server=utf8_general_ci character_set_server=utf8

3.重新启动mysql容器实例再重新进入并查看字符编码

docker restart mysql docker exec -it mysql /bin/bash mysql -u root -p

4.再新建库建表插入中文测试

5.结论
之前的DB无效,修改字符集操作+重启mysql容器实例之后的DB有效,需要重建
结论:docker安装完mysql并run出容器后,建议请先修改完字符集编码后再新建mysql库、表,插入数据

6.数据问题
假如把mysql容器删除,重新创建并启动一个新的容器

这时候进入mysql中,发现它里面的数据还在,这是因为数据已经挂载到了本地的/root/mysql/data目录下,实现了数据备份


__EOF__

本文作者cnhkzyy
本文链接https://www.cnblogs.com/my_captain/p/16860851.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cnhkzyy  阅读(346)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示