使用docker搭建mysql服务
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用docker搭建mysql服务,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2356字,纯文字阅读大概需要4分钟。
内容图文
![使用docker搭建mysql服务](/upload/InfoBanner/zyjiaocheng/522/48bf81261f374895bef9dcf6ac0907ab.jpg)
一、使用docker搭建mysql服务
1、拉取mysql镜像:docker pull mysql:5.7
2、检查是否拉取成功:docker image ls
3、将镜像跑为一个容器
docker run --name mysql -d -p 6666:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7
–name:容器名,此处命名为mysql
-e:配置信息,此处配置mysql的root用户的登陆密码
-p:端口映射,此处映射主机6666端口到容器的3306端口
4、进入docker本地连接mysql客户端
docker container(可以省略) exec -it mysql /bin/bash
show databases;
create database test;
在里面创建一个test数据库
二、实际中遇到的问题与解决办法
1、用Navicat连接
主机地址就是在vagrantfile中配的地址
在数据库test中建立一个user表,添加字段name,字段值是中文时,保存报错
这里说明我们要去更改配置文件my.cnf中的字符集格式
2、使用挂载
分析:因为mysql容器中的linux是精简版,只有一些最基础的命令,没有vi之类的编辑器,所以要把配置文件挂载出来,在外面进行更改。
退出mysql命令终端和容器,循环创建目录,将配置文件复制出来,更改之后挂载。
在mysqld.cnf文件中最后一行添加character-set-server=utf8
然后保存退出
3、删除原来的mysql容器
docker rm -f mysql
4、重新将mysql镜像跑为容器
1)此时遇到问题,如图:
意思是:来自守护进程的错误响应:冲突。容器名称“mysql”为已在容器“480c262388e...”中使用。您必须删除(或重命名)该容器才能重用该名称。
解决方法是使用 docker ps -l 检查仍然存在的mysql容器
docker rm 容器ID
然后重新执行 docker run ...命令
然后在容器中执行命令,开启一个交互模式的终端
dockers exec -it mysql /bin/bash
2)又又又出现问题,如图
查看日志找原因:docker logs mysql
解决方法有三个:
1.在docker run中加入 --privileged=true 给容器加上特定权限,如下
Docker run --privileged=true ....
2.关闭selinux csdn
3.在selinux添加规则,修改挂载目录
这里采用第一种办法
之后再执行 dockers exec -it mysql /bin/bash
接下来进入mysql命令终端,创建数据库test,其实也就是重复步骤二中一开始在用navicat连接,然后到test数据中建表user,然后保存值为中文的name字段,这次就能成功保存了。
总结:这个例子很直观的展示了从拉取镜像,到运行成容器,在容器中开启交互模式的终端,再到更改配置后挂载文件,删除原来的容器,重新把镜像跑成容器等等一系列整套操作。以及中间遇到的问题和解决办法。
参考链接:https://www.jianshu.com/p/bccda875e7a5
使用docker搭建mysql服务
标签:info 建立 数据 映射 center 步骤 code 方法 存在
本文系统来源:https://www.cnblogs.com/hld123/p/12734055.html
内容总结
以上是互联网集市为您收集整理的使用docker搭建mysql服务全部内容,希望文章能够帮你解决使用docker搭建mysql服务所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。