Docker安装Mysql以及安装Mysql可能会遇到的问题及解决

大家好,我们直接开始操作:

首先启动拉取mysql镜像这边用的是5.7版本的 docker pull mysql:5.7 然后 docker images 查看镜像是否已存在,如果存在可以通过以下命令启动mysql docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7  这个时候 docker ps 查看mysql是否已启动 如果启动成功则可以通过 docker exec -it 容器id bash 来进入交互模式,然后通过mysql -uroot -p 输入刚才的密码来进入mysql内部,这个时候这种方式 可能会出现一些无法写入中文字符集或者字符集编码错乱情况出现,最重要的是在我们删除容器后数据消失问题,这个时候可以这样解决:

首先我们需要进行一个mysql宗卷映射,将docker中的mysql映射到我们的虚拟机本地,我们可以新建一个目录,我是放在root目录下的,所以我们可以执行这条命令,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  这条命令就是实现我们docker容器内文件映射后并启动的一个命令,你会发现这条命令映射了三个最关键的目录分别是,datalogconf,这三个目录,运行完这条命令后你会发现,在我们本地指定的root路径下会多出一个mysql文件 cd mysql 进去之后会发现有三个文件夹 就是data,log,conf,

 这个时候我们需要解决字符集不能输入中文问题,进入mysql文件夹后输入以下命令,cd conf,查看文件夹列表会发现是空的,这个时候我们需要自己创建一个配置文件,这个文件就是mysql中的核心文件,vim my.cnf,然后再里面加入这个内容:

[client]

default_character_set=utf8

[mysqld]

collation_server = utf8_general_ci

character_set_server = utf8

 ,这个内容就是设置mysql字符集编码更正为utf8的,接下来,我们通过 docker ps 查看运行的mysql容器,然后通过 docker exec -it 容器id bash,然后进入这个mysql容器交互模式然后通过,mysql -uroot -p,这个命令进入mysql ,先查看一下字符集是否正确,SHOW VARIABLES LIKE 'character%'; ,如果发现都是utf8则说明大概是没问题的,这个时候我们可以在新建一个库,create database tb01;use databases;,建好数据库我们新建一张表,create table t_dog(id int,name varchar(255)); ,接下来我们在这个表中新增一条数据,insert into t_dog values(1,'jack'); ,注意在服务器中操作数据库是打不出中文的,我们执行这条句子后去我们的可视化工具中查看数据,这时可以在可视化工具上面加入一条中文数据验证,insert into t_dog values(2,"杰克");,这个时候我们在查这张表就会发现已经添加成功中文数据

接下来我们试着将docker中这个mysql容器删除掉,看我们的数据是否会被删除丢失,

我们首先docker ps,查看运行中容器,然后docker rm -f 容器id 将该容器删除掉,这个时候在docker ps 查看会发现容器已经被删除,接下来我们在此执行这条指令 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 ,然后重新启动该容器,进入mysql 中通过  show databases;查看我们的数据库,会发现我们创建的数据库还在,这个时候可以通过 use tb01;,切换到这个数据库 通过select * from t_dog;

 ,数据依然存在,说明我们操作成功能,接下来我们就可以通过docker 来愉快的玩耍我们的mysql了

如果这篇文章对大家有帮助 给点个赞哦,谢谢大家伙儿,下篇见了您嘞!

猜你喜欢

转载自blog.csdn.net/m0_67864787/article/details/131452247
今日推荐