zoukankan      html  css  js  c++  java
  • 【Docker】04 部署MySQL

    从官网上拉取最新MySQL镜像:

    docker pull mysql:latest

    创建并运行一个MySQL镜像的容器

    docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

    即使该容器实例运行失败,也表示它是创建成功的,已经存在

    命令参数的解释?

    -itd
    -d: 后台运行容器,并返回容器ID
    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    
    --name mysql-test
    设置该容器实例的名称标识
    
    -p 3306:3306 
    映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务
    
    -e MYSQL_ROOT_PASSWORD=123456 mysql
    设置 MySQL 服务 root 用户的密码。

    如果物理机的已经运行了本地安装的MySQL并占用了3306端口,应该更改为3307或者其他端口

    【如果这个容器异常无法使用,直接移除容器重新创建即可】

    移除容器实例:

    docker rm mysql-test

     

    修改端口设置并重新执行运行命令

    docker run -itd --name mysql-test -p 3307:3307 -e MYSQL_ROOT_PASSWORD=123456 mysql

    我们访问MySQL容器,需要先进入这个容器:

    docker exec -it 容器名称标识 bash

    这里刚刚进入MySQL容器马上就退出了

    再次启动就报错说容器没有运行

    百度得知容器实例是因为Linux内存导致的

    使用指令查看内存

    free -h

    算了玩不了。。。

    然后使用TOP命令查看Linux所有进程使用情况:

    发现本地安装的MYSQL服务内存占用高的离谱,于是立刻停止服务了

    重新创建运行容器实例,这回正常了:

    输入密码123456,访问成功:

    使用本机的SQLyog访问测试,记住是3307端口

    发现错误2003代码:

    很可能是因为防火墙没开放这个端口

    先退出容器:

    防火墙开放3307端口,重启之后再看看

    但是还是没有用,可能因为MYSQL8.021版本远程用户需要创建新用户才可以使用

    进入容器实例,进入MySQL:

    更改加密规则:

    ALTER USER 'root'@localhost IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

    创建一个远程用户:

    CREATE USER 'daizhizhou'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

    然后赋予完整权限:

    GRANT ALL PRIVILEGES ON *.* TO 'daizhizhou'@'%';

    最后刷新权限:

    flush privileges;

    使用远程账号访问还是不行,但是到这里我才明白是因为之前设置的端口号原因导致的:

    删除这个镜像应该使用这个端口配置,因为mysql默认3306端口,配置3307根本无法监听

    所以需要由MySQL镜像的3306配置实际端口的3307:

    docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

    但是又有新的问题:

    这个好解决,回到上面创建新的用户并赋予所有权限,然后刷新权限,访问即可

    终于反应过来那个配置的解释的话,这样的话就可以本机mysql和容器mysql共存了

  • 相关阅读:
    关于SVM数学细节逻辑的个人理解(二):从基本形式转化为对偶问题
    关于SVM数学细节逻辑的个人理解(三) :SMO算法理解
    [2017BUAA软工]第0次个人作业
    关于SVM数学细节逻辑的个人理解(一) :得到最大间隔分类器的基本形式
    个人作业Week 1
    [2017BUAA软工]第一次个人项目 数独的生成与求解
    windows下安装webgoat
    .net 的StringComparison
    飞信登录过程的协议分析 (TCP直连方式)
    C#的String.Split方法
  • 原文地址:https://www.cnblogs.com/mindzone/p/13358144.html
Copyright © 2011-2022 走看看