美文网首页
docker安装mysql,以及如何进行持久化

docker安装mysql,以及如何进行持久化

作者: guessguess | 来源:发表于2020-07-21 22:05 被阅读0次

https://www.runoob.com/docker/docker-install-mysql.html
其实安装过程我也是照着教程做的。

在终端运行指令
docker pull mysql:latest
等待下载完成即可。
完成后的结果,看到了mysql说明是成功的,通过docker images指令可以找到我们安装了的镜像,刚刚安装了mysql
截屏2020-07-21下午9.18.11.png
通过下面指令启动docker中的mysql
docker run -d --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-d后台运行, -p映射端口,MYSQL_ROOT_PASSWORD=123456
执行的结果如下图所示
截屏2020-07-21下午9.26.34.png
由于映射了端口,我们可以通过客户端直接去访问docker的mysql,这里我用的是naviCat,执行以下sql语句
CREATE DATABASE test;
use test;
CREATE table my_user(
id int PRIMARY key);
INSERT into my_user VALUE(1);
SELECT * from my_user;
最后结果如下,是有数据的,那么如果这个时候容器出现故障了,数据还在不在。
截屏2020-07-21下午9.30.48.png
执行
docker ps -a
结果如下图,从下图便可以得知容器的id
截屏2020-07-21下午9.34.28.png
此时再执行以下指令
docker stop 4a220c9d0684   先暂停容器
docker rm 4a220c9d0684   再删除容器

docker ps -a
结果如下图,发现已经没有运行的容器了
截屏2020-07-21下午9.47.00.png
此时再重新启动mysql
docker run -d --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
查询数据库,发现之前创建的库已经不存在了
截屏2020-07-21下午9.49.13.png

参考了此处https://blog.csdn.net/qq_38239730/article/details/90484304

那么怎么避免这个问题
网上查了一下,其实大体方案就是在宿主机创建文件进行数据存放,那这样子的话,就可以避免这个问题了。
还是先把之前的容器给暂停且删除
然后创建我们自己的处久化目录
mkdir -p /Users/huangzhaoji/mysql/config /Users/huangzhaoji/mysql/data
vim /Users/huangzhaoji/mysql/config/my.conf

文件内容如下
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
然后我们重新启动容器
docker run -d -p 3306:3306 --restart always --privileged=true --name mysql-test -e MYSQL_ROOT_PASSWORD=123456 -v /Users/huangzhaoji/mysql/config/my.conf:/etc/my.cof -v=/Users/huangzhaoji/mysql/data:/var/lib/mysql mysql

随后我们通过客户端进行数据的插入,再删除容器,再查看,发现数据仍然是一样的,除非删除挂载的文件目录。

相关文章

网友评论

      本文标题:docker安装mysql,以及如何进行持久化

      本文链接:https://www.haomeiwen.com/subject/blnwkktx.html