Docker 运行 MYSQL 数据库的总结
公司里面要求做一个小demo 学习java相关的东西
然后使用了mysql数据库
很早之前做过mysql的容器化运行. 现在想想已经忘记的差不多了 所以这里总结一下 docker化运行mysql数据库的方法
1. 先说 mariadb
其实mariadb 就是mysql创始人反抗oracle的一个硬分支 里面的 环境变量和数据文件的路径还基本上相似.
我这里就使用一个比较简单的 mariadb:10.1 的镜像进行演示
先看下 我这里的三个 iamges

. 创建目录
mkdir /mariadbstorage . 运行 mariadb 的 容器 docker run -d -p : -v /mariadbstorage:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Test6530 --name mariadbtest --restart=always mariadb:10.1 . 使用工具进行验证 备注: 1. 3306 是默认mysql的端口号
2. /var/lib/mysql 是默认的 mysql数据存放路径
3. MYSQL_ROOT_PASSWORD 是默认的传送密码的环境变量.

工具显示的版本号:

2. mysql 8.0.17 我直接pull mysql 2019.7.31 pull 下来的 mysql的版本是 8.0.17
docker run -d -p : -v /mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Test6530 --restart=always --name mysql mysql
这里面 其实命令 是完全一样的 不过里面有一个坑, 我通过一个网页学习了下
https://blog.csdn.net/wcuuchina/article/details/85674891
设置了 MYSQL_ROOT_PASSWORD 的环境变量之后 navicat 还是不能用 需要再进入容器内部修改一下
我怀疑肯定有别的办法来处理. 但是 还不是很清楚.
mysql已经将之前的mysql_native_password认证,修改成了caching_sha2_password认证方式。 所以,使用类似于navicat或是sqlyog这些客户端时,默认使用还是mysql_native_password认证方式,所以即使输入正确的用户和密码依然登录不成功。
解决方法
. 进入容器 docker exec -it mysql /bin/bash .在容器内部执行命令 mysql -u root -p
#输入 MYSQL_ROOT_PASSWORD的密码
#然后执行
use mysql alter user 'root'@'%' identified with mysql_native_password by 'Test6530'; #执行刷新权限的命令
flush privileges #完成
验证版本

3. mysql 5.7.26
指定版本进行pull
然后执行命令即可
mkdir /mysql5726 docker run -d -p : -v /mysql5726:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Test6530 --name mysql5726 --restart=always mysql:5.7.
验证版本

Docker 运行 MYSQL 数据库的总结的更多相关文章
- docker运行mysql数据库
1.搜索镜像源是否有mysql镜像 执行语句: sudo docker search mysql 2.拉取需要版本的mysql,执行语句: docker pull mysql:5.7 3.查看安装 ...
- Docker学习实践 - Docker安装MySql数据库
Docker安装MySQL数据库 1.Ubuntu安装MySQL安装 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libnc ...
- Docker运行mysql,redis,oracle容器和SpringBoot项目
dokcer运行SpringBoot项目 from frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD target/demo-0.0.1-SNAPSHOT ...
- Docker运行Mysql,Redis,SpringBoot项目
Docker运行Mysql,Redis,SpringBoot项目 1.docker运行mysql 1.1拉取镜像 1.2启动容器 1.3进入容器 1.4开启mysql 1.5设置远程连接 1.6查看版 ...
- 在 树莓派(Raspberry PI) 中使用 Docker 运行 MySQL
在 树莓派(Raspberry PI) 中使用 Docker 运行 MySQL 本文主要利用 biarms 提供的 Dockerfile 进行安装. 笔者最新发现! MySQL 5.7 Docker ...
- 使用docker运行mysql
以前开发的时候都是用本地的sqlite开发,但是极少数情况下,sqlite支持的语法发布到服务器上链接mysql会报错. 为了避免这种现象,还是链接本地mysql开发还是更稳定的, 可是开发的项目多了 ...
- 使用docker容器运行MySQL数据库并持久化数据文件
1.下载mysql镜像 # docker pull mysql 2.启动mysql容器 # docker run -itd -v /data:/var/lib/mysql -p 33060:3306 ...
- Docker安装Mysql数据库容器(zz)
zz自:http://blog.csdn.net/chengxuyuanyonghu/article/details/54380032 1.下载mysql的镜像: sudo docker pull m ...
- Docker安装MySQL数据库
本文翻译自:MySQL Docker Containers:Understanding the basics 1.下载MySQL镜像 docker pull mysql:5.6 如此便可以下载最新的M ...
随机推荐
- ACM-ICPC 2018 南京赛区网络预赛Sum,线性筛处理积性函数
SUM 题意:f(n)是n可以拆成多少组n=a*b,a和b都是不包含平方因子的方案数目,对于a!=b,n=a*b和n=b*a算两种方案,求∑i=1nf(i) 首先我们可以知道,n=1时f(1)=1, ...
- Django-自定义web框架
自定义web框架 1.准备登录的html <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- [pytorch] PyTorch Hook
PyTorch Hook¶ 为什么要引入hook? -> hook可以做什么? 都有哪些hook? 如何使用hook? 1. 为什么引入hook?¶ 参考:Pytorch中autogra ...
- Java基础_死锁、线程组、定时器Timer
一.死锁问题: 死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放.由于线程被无限期地阻塞,因此程序不可能正常终止. 比如,线程一需要第一把所,此时锁处于空闲状态,给了 ...
- shell 从键盘读取输入时删除输入的字符
[参考文章]:stty命令的用法全解 [参考文章]:shell——read时退格异常(shell修改删除符) stty srase ^h read -p "请输入参数信息" 在 ...
- Amdahl定律和可伸缩性
性能的思考 提升性能意味着可以用更少的资源做更多的事情.但是提升性能会带来额外的复杂度,这会增加线程的安全性和活跃性上的风险. 我们渴望提升性能,但是还是要以安全为首要的.首先要保证程序能够安全正常的 ...
- jquery中mouseover和mouseenter的区别
jquery中mouseover和mouseenter的区别 一.总结 一句话总结: 见名知意:enter(进入)和over(在上方)的意思好好思考一下 mouseover就是从子元素回到自己的时候也 ...
- QTcpSocket 发送数据的几种方法
1.QTcpSocket 继承于QAbstractSocket继承于QIODevice 2.QTcpSocket 提供的几种接收和发送数据方法 write ( const char *, qint64 ...
- PHP环境搭建之单独安装
还在使用PHP集成环境吗?教你自定义搭建配置PHP开发环境,按照需求进行安装,安装的版本可以自己选择,灵活性更大. 目录:1. 安装Apache2. 安装PHP3. 安装MySQL4. 安装Compo ...
- Kbengine游戏引擎-【2】kbengine引擎服务端目录结构分析
|- kbengine (KBE_ROOT 根目录) |- demo (游戏例子工程的根目录) |- res (工程的所有资源) |- spaces (通常存放游戏场景相关的资源,例如Navmesh) ...