• 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更换了验密方式,所以需要做进一步处理才能让其他客户端工具连接成功。

  • 相关阅读:
    (10)进程---Manager数据共享
    (9)进程---JoinableQueue队列
    (8)进程---Queue队列
    (7)Pool进程池
    (6)进程---Event事件
    (5)进程--锁和信号量
    (4)进程---daemon守护进程和join阻塞
    XSLT知识点【一】
    XSL-FO知识点【一】
    XPath知识点【一】
  • 原文地址:https://www.cnblogs.com/lanqingzhou/p/13590398.html
Copyright © 2020-2023  润新知