通过命令: docker search mysql 搜索mysql,可以发现标记的那两个是官方的

也可以在https://hub.docker.com上搜索mysql

网站上面搜索的会有很多配置提示,

右边显示的是pull命令:

输入命令: docker pull mysql/mysql-server

也可以直接 docker run 语法,因为当run的时候,docker发现本地没有该镜像,回去该网站上pull

最好在创建镜像的时候就指定用户名,密码和字符集,语法:

docker run -d -p 3306:3306
-e MYSQL_USER="nsky"  #新增用户名 nsky
-e MYSQL_PASSWORD="password" #nksy的密码
-e MYSQL_ROOT_PASSWORD="password"  #root的密码
--name [Name] [ImageName] #容器名称 镜像名称,就是说以哪个镜像为基础创建容器
--character-set-server=utf8 #字符集
--collation-server=utf8_general_ci #级别

根据上面的语法,修改容器名称和镜像名称

docker run -d -p 3306:3306
-e MYSQL_USER="nsky"
-e MYSQL_PASSWORD="password"
-e MYSQL_ROOT_PASSWORD="password"
--name mysql01 mysql/mysql-server
--character-set-server=utf8
--collation-server=utf8_general_ci

注意,你直接这样复制命令是不行的,因为回车
解决方法:

1:不回车,变成一行

2:在回车后面加入空格右斜杠  \

docker run -d -p 3306:3306 \
-e MYSQL_USER="nsky" \
-e MYSQL_PASSWORD="password" \
-e MYSQL_ROOT_PASSWORD="password" \
--name mysql01 mysql/mysql-server \
--character-set-server=utf8 \
--collation-server=utf8_general_ci 

然后在命令工具里面粘贴,回车,创建成功

docker ps  查看运行的容器,状态显示已经启动

启动中是这样的:

进入容器: docker exec -it mysql01 bash

登录mysql : mysql -uroot -p

使用数据库:

查看用户名: select user,host from user;

从可以看到root的host是localhost,说明只能通过localhost登陆,localhost以外的地方就不能连接了。用Navicat可以测试下

用nsky可以

我用nsky登陆的,没有权限使用数据库,用root登陆,给权限命令: GRANT ALL PRIVILEGES ON *.* TO 'nsky'@'%' WITH GRANT OPTION; 

可以在创建用户的时候,就让他可以在外部连接: CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123456';

查看字符集: show variables like '%char%';

查看当前的collation: show variables like 'collation%';

但容器一删除,刚这些配置都没有了,所以建议是数据卷volume ,挂载

后期建议用mount ,语法更简单

其实就是容器的文件跟宿主机的一个绑定

退出mysql容器,输入exit即可

语法:

#注意:需要先创建/docker/mysql/config/my.cnf文件和/docker/mysql/data文件夹

docker run -d -p 3306:3306 --name mysql01 -v=/docker/mysql/config/my.cnf:/etc/my.cnf -v=/docker/mysql/data:/var/lib/mysql mysql/mysql-server

在chentos系统中,要区分是根目录还是root目录

这是root目录,[root@localhost~]

这是根目录 [root@localhost /]

如果是root目录。那么:-v=/root/mysql/m.cnf

如果是根目录,那么:-v=/mysql/m.cnf

my.cnf如下

[mysqld]
user=mysql
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

确定后,进入容器,修改密码

修改密码语句
mysql5.7版本语法:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');
mysql5.7之后版本语法:
ALTER user 'root'@'localhost' IDENTIFIED BY '123456'

可以通过命令: docker inspect mysql02

来看这个容器的一些参数和配置,比如我们配置的资料卷挂载

这样删除容器,在重新创建一个的话的,配置依然存在

当然,你创建容器的时候,-v后面的环境变量绑定必须之前的宿主机的路径

参考:https://shimo.im/docs/anrlYMFEYloN52c8

转载于:https://www.cnblogs.com/nsky/p/10413136.html

docker 安装mysql相关推荐

  1. Centos-安装Docker并使用Docker安装mysql遇到的问题以及解决方法

    为什么安装Docker?? ----不知道啊,说是用其安装mysql简单 step1:    首先百度,查找安装的教程,哎,找到了: 如下: https://www.jianshu.com/p/9c9 ...

  2. 虚拟机中docker安装mysql远程无法访问解决方法

    #docker安装mysql docker pull mysql docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d ...

  3. [转]Docker学习之四:使用docker安装mysql

    本文转自:https://blog.csdn.net/qq_19348391/article/details/82998391 Docker学习之一:注册Docker Hub账号 Docker学习之二 ...

  4. docker安装mysql并配置,Docker安装MySql-挂载外部数据和配置

    在上一篇中<在CentOS7中使用Docker安装MySql>中介绍了怎样在Docker中安装Mysql,但存在两个问题: 1.用户密码和字符集等的设置,需要安装完MySql后,进入到My ...

  5. Docker 安装MySQL以及外部访问

    Docker 安装MySQL以及外部访问 (1)因为我们的镜像是linux环境下的,我所在的系统是windows系统.首先通过docker客户端切换到linux环境下. (2)使用docker pul ...

  6. 史上最详细Docker安装Mysql 带每一步详图及解释 并教你Docker 打印容器日志!!!相信值得你的阅读!!!

    众所周知,如果我们要把项目放在服务器上运行,那么数据存储就是必需的,就用这篇小小文章记录一下我的经历吧. MySQL是一个关系型数据库管理系统,也是是最流行的关系型数据库管理系统之一,在 WEB 应用 ...

  7. docker安装mysql远程不能访问,虚拟机中docker安装mysql远程无法访问解决方法

    #docker安装mysql docker pull mysql docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d ...

  8. macos docker 安装mysql,mac 中docker安装mysql的图文教程

    今天在docker中安装了mysql ,是自己打的docker包. 首先新建dockerfile 内容如下: from mysql:latest 新建dockerfile后执行build命令: 构建镜 ...

  9. docker安装mysql redis_Docker安装Mysql和Redis以及构建部署应用镜像

    为了方便本地测试项目,为了方便开启新的环境,为了方便部署,打算本地利用Docker安装Mysql和Redis. 搭建Springboot项目,编写Dockerfile,打包构建镜像. 简单使用dock ...

  10. docker 安装mysql 实战文档_docker 安装mysql

    PassJava (佳必过) 项目全套学习教程连载中,关注公众号第一时间获取. docker 安装mysql 1.下载镜像 sudo docker pull mysql:5.7 ubuntu@VM-0 ...

最新文章

  1. Django ModelForm操作及验证
  2. GCD -- 倒计时
  3. centos 6.5 rpm mysql_Linux平台(CentOS 6.5) RPM包方式安装 Mysql 5.7
  4. Java之多线程里面的锁理解以及synchronized与Lock的区别
  5. ZABBIX Agent2监控docker
  6. 苹果x翻新机序列号开头_Android翻新电话每隔X秒
  7. request.getContextPath()和request.getRealPath()的区别
  8. 国外变电站3d可视化技术发展_盘点:测量技术五大发展趋势,含3D扫描
  9. android自带下拉阻尼动画,Android 自带阻尼效果的ScrollView,仿ios效果
  10. acs代表什么_ACS 是什么意思
  11. #路由配置以及华为路由协议优先级
  12. Jquery 实现表格单行获取数据
  13. Jmeter对webSocket测试
  14. 网页请求localhost可以,但是请求ip地址就会出现连接超时
  15. Kafka Streams开发单词计数应用
  16. 数二第一章函数、极限、连续做题总结
  17. 一阶常系数微分方程组的笔记
  18. Beauty diary
  19. SimSwap 高保真人脸交换的高效框架 以及 deepfake辨别图片或者视频真假 dalle-mini文字生成图片
  20. Socialbook告诉你这才是KOL营销的终极秘诀

热门文章

  1. Android Support v4、v7、v13 介绍
  2. WDF驱动中KMDF与UMDF区别
  3. 在JSP页面中显示List集合·
  4. git常见的回退操作
  5. Zuul Gateway 网关
  6. java: jstl.jar和standard.jar的下载地址与使用
  7. java:UDP通信
  8. python二十二:迭代,三元表达式,列表解析
  9. 云计算开发技术,Python自动化运维开发实战三部分
  10. MVP架构设计 进阶三