环境:我使用3A服务器搭建centos7

简介

这里的实现思路是,先拉取完 MySQL 镜像之后,启动 MySQL 容器,然后将 MySQL 的配置文件拉取到本地,关闭之前启动的容器,重新使用挂载的方式启动。

第一步: 拉取 mysql 镜像

docker pull mysql

第二步: 在本地创建用于挂载的目录

这里是用来在本地创建一个 conf 文件,以后启动 docker 中的 mysql 时,就使用这个配置文件

// 用于挂载mysql数据文件 -p 指的是没有父级的时候,创建父级文件夹

sudo mkdir -p /apps/mysql/data

// 用于挂载mysql配置文件

sudo mkdir /apps/mysql/conf

// 上面的两个步骤,可以使用下面这个命令来执行

mkdir -p /apps/mysql/{conf,data}

// 修改   /my  目录拥有者

sudo chown root:docker $PWD/mysql

第三步:查看 mysql 配置文件的路径,复制配置文件到本地

这里是需要进入 docker 容器中,查看 容器中的配置文件路径,将配置文件复制到本地

# 启动一个测试的容器

docker run --name mysqltest \

-p 3307:3306 -e MYSQL_ROOT_PASSWORD=root \

-d mysql

# 访问 mysql 容器

docker exec -it mysqltes /bin/sh

# 查找Docker内,MySQL配置文件my.cnf的位置

mysql --help | grep my.cnf

#  显示如下,意思是路径按优先排序,会是在以下路径里:

#  配置文件的路径不一定都一样,有些博客介绍的位置是在/etc/my.cnf。

#  而我这个系统上面实际存在位置是在/etc/mysql/my.cnf

order of preference, my.cnf, $MYSQL_TCP_PORT,

/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

创建好本地的挂载数据路径后,我们再将测试容器里 MySQL 的配置文件复制到该路径。日后需改配置,直接在挂载路径的配置文件上修改即可。

docker cp mysqltest:/etc/mysql/my.cnf /apps/mysql/conf

第四步: 使用镜像创建容器

这里介绍两种挂载的方式,使用下面其中一种就好。

使用 -v 挂载方式

这里需要切换到 /apps/mysql 目录下

docker run --name mysql -p 3306:3306 -v $PWD/data:/var/lib/mysql -v $PWD/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql

命令解析:

--name:容器名

--p:映射宿主主机端口

-v:挂载宿主目录到容器目录

-e:设置环境变量,此处指定root密码

-d:后台运行容器

使用 -mount 方式创建

这里使用的是说,将本地的配置文件提供给 docker 中的容器读取。

docker run --name wp-mysql \

-p 3306:3306 -e MYSQL_ROOT_PASSWORD=root \

--mount type=bind,src=/apps/mysql/conf/my.cnf,dst=/etc/mysql/my.cnf \

--mount type=bind,src=/apps/mysql/data,dst=/var/lib/mysql \

--restart=on-failure:3 \

-d mysql

第五步: 进入docker 容器内部对 mysql 配置

这里是为了让 mysql 可以让外部访问

# 进入 mysql 容器直接访问 mysql 服务

docker exec -it mysql /bin/sh

# 连接到mysql

mysql -uroot -p

输入上面设置的密码 123456

第六步:设置MySQL可以外部访问

# 创建一个账号,用来进行远程访问;

# {usernama} 是远程访问登录的用户名,不建议用 root;

# {password} 是远程访问的登录密码;

# '%'代表的是所有IP,如果可以尽量设置指定 IP 或 IP 段

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

# 赋予所有权限给之前创建的账号

GRANT ALL ON *.* TO 'username'@'%';

# 确认使用这里的密码登录此账号

ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

# 刷新权限

FLUSH PRIVILEGES;

完整的命令为

# 创建一个账号-admin,用来进行远程访问;

CREATE USER 'admin'@'%' IDENTIFIED BY '123456';

# 赋予所有权限给之前创建的账号:admin

GRANT ALL ON *.* TO 'admin'@'%';

# 确认使用密码{123456}登录此账号{admin}

# 密码尽量复杂,安全性更高。

ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

# 刷新权限

FLUSH PRIVILEGES;

连接成功的图

docker 中安装 MySQL 以及使用相关推荐

  1. 如何在Docker中安装MySQL数据库

    1.Docker环境 视频教程:https://www.bilibili.com/video/BV1xv4y1S7kA 2.搜索镜像 https://hub.docker.com/网站搜索MySQL, ...

  2. Docker中安装Mysql报错--[Warning] TIMES TAMP with implicit DEFAULT value is deprecated. Please use - - exp

    安装一个带有mysql的docker镜像 docker run --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=roo ...

  3. docker中安装mysql

    一.拉取mysql镜像,这里示例mysql5.7.命令:docker pull mysql:5.7 二.创建一个mysql的容器 docker run --name "mysql" ...

  4. 靖哥哥教你如何在docker中安装mysql

    原文链接:靖哥哥博客 https://www.jggbk.com/blogs/article/29.html

  5. 以两台Linux主机在docker中实现mysql主主备份以用nginx实现mysql高可用

    使用nginx反向代理主主备份的两台mysql,连接时连接nginx,当其中一台myql停止后,仍然可以正常使用,如果使用k8s 会简单许多.所谓主主复制就是在主从复制的基础上掉了个头. 请博主买块糖 ...

  6. 你在 Docker 中跑 MySQL?恭喜你,可以下岗了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 容器的定义:容器是为了解决"在切换运行环境时,如何保证软件能够正常运行"这一问题. 目前,容器和 Docker ...

  7. docker连不上宿主机mysql_宿主机连接docker中的mysql

    宿主机连接docker中的mysql dokcer安装mysql docker run \ --name mysql \ -v $PWD/mysql:/var/lib/mysql \ -p 3306: ...

  8. ubuntu docker一键安装mysql_mysql5.6在ubuntu下的docker中安装的办法详细说明

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  9. SQLyog连接虚拟机中docker中的mysql过程详解,并解决2003错误

    docker中安装启动mysql: 获取镜像docker pull mysql:5.7 启动并创建mysql容器 docker run -d -p 3306:3306 -v /home/mysql/c ...

最新文章

  1. 全面感知通用目标:建模、分割和重建(CVPR2021)
  2. android设置app全局没通知声,从android中的firebase发送通知时没有通知声音
  3. 程序员面试算法_程序员的前20个搜索和排序算法面试问题
  4. Redis之rehash操作
  5. Go框架 gin 源码学习--路由的实现原理剖析
  6. linux 扩展内存,linux扩展虚拟内存
  7. java中ajax的使用jar包_AJAX Java示例
  8. 增长量计算n+1原则_行测资料分析技巧:一招解决增长量
  9. 计算机应用技术和cad,计算机图形技术与CAD
  10. 数据结构-顺序表基本操作的实现(含全部代码)
  11. windows_10_enterprise_ltsc_2019 X64纯净版(17763.2028)20216.23
  12. 仰望星空,脚踏实地 2016
  13. 荧光平均值计算matlab,科学网—使用Image J进行自动荧光定量分析 - 陆绮的博文...
  14. 显卡掉驱动 不用重启
  15. 图形编辑器:拖拽阻塞优化
  16. 程序员必备-网站推荐
  17. iOS开发学习48 OC的lambda block
  18. 【附源码】25个Python实战项目,超适合零基础练手,建议码住
  19. 【毕业设计】基于单片机的门禁系统 - 嵌入式 物联网
  20. 前端React 框架- UmiJS有听说过吗?

热门文章

  1. 企业文化如何推动绩效?
  2. m4a转mp3简单的音频转换方法?
  3. The Apache Way - 开源项目
  4. 西北大学发布猴脸识别论文,公开 10 种动物面部数据集
  5. 【Java基础】重写equals方法详讲
  6. IIS MIME设置
  7. Silverlight 中文教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)
  8. 微信热文捕手使用说明
  9. 有80%的疾病都是由于不良生活习惯所导致的,常见8大不良习惯,既伤身又伤神
  10. JavaScript如何制作简单倒计时效果