zoukankan      html  css  js  c++  java
  • Docker安装Mysql多版本

    Mysql5.7

    下载镜像

    > docker pull mysql:5.7
    
    # 下载需要一定时间
    # 下载完成后可以使用以下命令查看镜像
    > docker images

    创建并运行容器

    docker run -di --name mysql5.7 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
    
    # 使用一下命令可以查看当前运行的容器
    docker ps
    • --name mysql5.7:代表容器的名字
    • -p:代表端口映射,格式为宿主机映射端口:容器运行端口
    • -e:代表添加环境变量,MYSQL_ROOT_PASSWORD是root用户的登陆密码
    • mysql:5.7:表示使用的镜像以及版本号

    连接Mysql

    使用命令行连接

    mysql -uroot --host 127.0.0.1  --port 33306 -p123456

    使用上面的命令能直接连接成功。

    使用MySQLWorkbench连接

    image.png

    也能连接成功:

    image.png

    总结

    使用mysql:5.7版本的docker镜像,创建并启动容器后可以直接使用,默认在启动的Mysql中已经添加了'root'@'%'用户,并具有所有权限。

    Mysql8

    下载镜像

    > docker pull mysql:8.0
    
    # 下载需要一定时间
    # 下载完成后可以使用以下命令查看镜像
    > docker images

    创建并运行容器

    docker run -di --name mysql8.0 -p 33307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
    
    # 使用一下命令可以查看当前运行的容器
    docker ps

    连接Mysql

    使用命令行连接

    mysql -uroot --host 127.0.0.1  --port 33307 -p123456

    使用上面的命令能直接连接成功。

    使用MySQLWorkbench连接

    image.png

    但是连接不成功:

    image.png

    使用刚刚的命令行登录到mysql中,或者使用下面的命令行直接登录到docker容器中,然后登录到mysql中

    docker exec -it mysql8.0 /bin/bash

    然后使用下面的SQL语句修改'root'@'%'用户的验密方式:

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    FLUSH PRIVILEGES;

    执行完成后,MysqlWorkbench也能连上Mysql了。

    总结

    使用mysql:8.0版本的docker镜像,创建并启动容器后可以直接使用Mysql命令行连接成功,但是因为Mysql8更换了验密方式,所以需要做进一步处理才能让其他客户端工具连接成功。

  • 相关阅读:
    mysql 分页查询的优化
    将某盘下所有文件名存在一个文件下面
    java 时间处理经典案例
    完整的发邮件并且生成测试报告的例子
    python 定时任务的执行
    打飞机游戏第一天,诸神归位
    数据库中插入几百万条数据
    面向对象的总结
    Python关于文件操作的总结
    python自动化,自动登录并且添加一个门店
  • 原文地址:https://www.cnblogs.com/lanqingzhou/p/13590398.html
Copyright © 2011-2022 走看看