首页 > 数据库技术 > 详细

Docker 运行 MYSQL 数据库的总结

时间:2019-07-31 10:47:48      阅读:66      评论:0      收藏:0      [点我收藏+]

公司里面要求做一个小demo 学习java相关的东西 

然后使用了mysql数据库 

很早之前做过mysql的容器化运行. 现在想想已经忘记的差不多了  所以这里总结一下 docker化运行mysql数据库的方法

1. 先说 mariadb

其实mariadb 就是mysql创始人反抗oracle的一个硬分支 里面的 环境变量和数据文件的路径还基本上相似. 

我这里就使用一个比较简单的 mariadb:10.1 的镜像进行演示

先看下 我这里的三个 iamges

技术分享图片

1. 创建目录
mkdir /mariadbstorage

2. 运行 mariadb 的 容器

docker run -d -p 3307:3306 -v /mariadbstorage:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Test6530 --name mariadbtest --restart=always mariadb:10.1

3. 使用工具进行验证

备注: 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 3308:3306 -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认证方式,所以即使输入正确的用户和密码依然登录不成功。

解决方法

1. 进入容器

docker exec -it mysql /bin/bash

2.在容器内部执行命令

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 3309:3306 -v /mysql5726:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Test6530 --name mysql5726  --restart=always mysql:5.7.26

验证版本

技术分享图片

 

Docker 运行 MYSQL 数据库的总结

原文:https://www.cnblogs.com/jinanxiaolaohu/p/11274154.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!