IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> docker方式部署mysql -> 正文阅读

[系统运维]docker方式部署mysql

要直接在服务器上安装mysql,还是很难的。不过有了docker,就方便了。

本文简单介绍下通过docker来部署mysql的方法。

拉取镜像

直接去dockerhub上找一个最新的mysql5.7版本的镜像,然后拉取下来

docker pull mysql:5.7.37

创建Mysql容器

docker run -d -p 3307:3306 --name demo -v /usr/local/mysql/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.37

参数说明:

-d:容器后台运行

-p 3307:3306:宿主机上3307端口对应容器中3306端口,在外部访问时用的是宿主机上的端口

--name demo:给容器起个名字,方便查找和使用

-v /usr/local/mysql/data:/var/lib/mysql:将宿主机"/usr/local/mysql/data"目录挂载到容器的"/var/lib/mysql"目录(具体使用宿主机上哪个目录,自行定义),使得mysql数据文件能在宿主机上进行保存。这一步很重要,如果不挂载的话,一旦容器删除了,那么数据就丢失了!

-v /etc/localtime:/etc/localtime:将宿主机时间挂载到容器中,使容器中时间和宿主机同步

-e MYSQL_ROOT_PASSWORD=123456:给root用户设置默认密码为123456

mysql:5.7.37:镜像名

如果有需要自定义mysql配置文件的,可以自己写好配置文件,然后通过-v命令挂载到容器中,替换默认的配置文件。容器中是在"/etc/mysql"目录中:

开启外部访问权限

我重新试了下,这一步不需要做了,上面创建完容器之后,外部访问已经开启了!

如果没有开启,可以按以下步骤开启:

1) 进入容器并以root用户登录

docker exec -it demo bash
mysql -uroot -p
123456

2) 执行下面几条命令以开启外部访问权限

注意:如果是高版本mysql,这里命令有点不一样,需要拆开来,先创建用户,再赋予权限

use mysql;
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;

这边改完,就能使用navicat连接这个mysql了。

容器重启后,数据是否还在?

插入点数据,然后重启容器来验证:

docker stop demo
docker start demo

查看数据,发现数据还在。

事实上,如果只是重启容器的话,就算不将"/var/lib/mysql"挂载到宿主机,数据还是能继续访问的。只有将容器删除后,数据才会丢失。

删除容器,再重新创建,数据是否还在?

执行命令彻底删除容器,再重新创建容器:

docker stop demo
docker rm demo
docker run -d -p 3307:3306 --name demo -v /usr/local/mysql/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.37

容器创建完后,发现直接能连接mysql,不用再重新开启外部方法了。而且之前的数据也还保留着。

这是因为将容器中的mysql数据目录"/var/lib/mysql"挂载到宿主机本地了。如果不挂载,当容器删除时,数据就丢失了!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:59:52  更:2022-03-08 23:00:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:37:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码