• Docker 运行 MYSQL 数据库的总结


    公司里面要求做一个小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

    验证版本

  • 相关阅读:
    django-orm基础字段及选项1
    django-模型层
    django-应用及分布式路由
    django-static配置静态文件
    django-url反向解析
    django-url路径书写规范
    django-模板继承 block、endblock、 extend
    详解HTML中的表单元素
    详解HTML中的表格标签
    jQuery和AJAX基础
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/11274154.html
Copyright © 2020-2023  润新知