zoukankan      html  css  js  c++  java
  • centos mysql 实战 第二十六节课 mysql in docker

    centos mysql  实战  第二十六节课   mysql in  docker


    删除系统自带的 Docker

    yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

    安装官方的 docker repo

    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum list |grep  docker-ce
    yum install -y  docker-ce docker-ce-cli containerd.io

    Docker 配置
    这个动作在 docker 启动之前执行

    vim /etc/docker/daemon.json
    {
    "registry-mirrors": ["https://mirror.ccs.tencentyun.com"],
    "data-root": "/data/docker"
    }

    这里只是配置一个利用腾讯云的 docker repo 加速(这里也可以自行换为阿里
    云的 repo), 同时指定了 Docker image,container 存储的位置。
    可以配置参数参考:
    https://docs.docker.com/engine/reference/commandline/dockerd



    启动关闭 Docker
    启动 Docker

    systemctl start docker


    关闭 Docker

    systemctl stop docker


    查看 Images

    docker images


    查看运行中的 container

    docker ps


    查看本机上所有 container

    docker ps -a


    利用 Oracle 官方的 Image 启动 MySQL
    Docker image 搜索点: https://hub.docker.com/
    官方的 Image: https://hub.docker.com/r/mysql/mysql-server
    1. 拉取官方 Image

    docker pull mysql/mysql-server:latest

    查看 image

    docker images

    查看该 image 的大概信息

    docker inspect mysql/mysql-server:latest
    略

    2. 基于该 Image: mysql-server:latest 启动 container

    docker run --name=mysql3306 -d mysql/mysql-server:latest

    查看运行的 container

    docker ps

    3. 查看 MySQL 的密码并连接上去

    docker logs mysql3306 2>&1 |grep PASSWORD
    mavax10GEsAw#umQiPyL@P4zvUh

    但现在这个 container 没办法从外面连接上去, 需要进入行 docker 后连接

    docker exec -it mysql3306 mysql -uroot -p

    接下来我们想要做一个可以用于做功能测试的 MySQL。
    上面的 container 到这里就可以干掉不要了。

    docker stop mysql3306
    docker rm mysql3306
    docker ps -a  #确认无 mysql3306

    指定配置启动 3306

    docker run --name=mysql3306 -p3306:3306 -p33060:33060 -v  
    /data/mysql/zst1_mysql_3306.cnf:/etc/my.cnf -v   
    /etc/localtime:/etc/localtime -e   
    MYSQL_ALLOW_EMPTY_PASSWORD=1 -e MYSQL_USER='zst' -e  
    MYSQL_PASSWORD='wubxwubx' -e MYSQL_DATABASE='zst' -d  
    mysql/mysql-server:latest

    参数说明:
    -p3306:3306,指定端口,格式为:-p 宿主机端口:Container 端口。
    -v /data/mysql/zst1_mysql_3306.cnf:/etc/my.cnf,配置文件
    bind(映射),把本地的/data/mysql/zst1_mysql_3306.cnf 映射到mysql3306 这个实例中的/etc/my.cnf
    确认端口监听是不是 Ok

    ss -lnt |egrep "3306|33060"
    docker logs mysql3306 2>&1 |grep PASSWORD
    [Entrypoint] GENERATED ROOT PASSWORD: 0b)3gmoHYlraqkUpedEnBIM@G0s

    登录 MySQL 并创建帐号

    docker exec -it mysql3306 mysql -uroot -p
    grant all privileges on *.* to 'nihao'@'%' identified by '123456' with grant option;

    通过宿主机登录 MySQL

    mysql -h 172.17.0.2 -unihao -p123456




    同时可以执行 show global variables 确认几个关键参数是不是我们指定的值。
    到这里 3306 实例创建完事。
    但这里还有一个问题:Container 中时间和我们宿主机的时间差了 8 个小时,这个主要是 Image 的时
    间设置有问题,我们可以在初始化 3307 实例时把宿主机的时区给带过去就可以解决了。

    select sysdate(),now(),@@timezone;
    
    
    
    
    mysql -h192.168.11.111 -P3307 -uzst -pwubxwubx

    f

  • 相关阅读:
    2020年秋招联发科小米等20家公司面经总结
    一个普通硕士生的2020秋招总结(文末送福利)
    Linux内核中container_of宏的详细解释
    拒绝造轮子!如何移植并使用Linux内核的通用链表(附完整代码实现)
    UWB硬件设计相关内容
    SpringToolSuit(STS)添加了Lombok后仍然报错
    Spring Boot整合Mybatis出现错误java.lang.IllegalStateException: Cannot load driver class:com.mysql.cj.jdbc.Driver
    Word快捷选取
    微服务下的用户登录权限校验解决方案
    Spring Boot 使用Mybatis注解开发增删改查
  • 原文地址:https://www.cnblogs.com/MYSQLZOUQI/p/13533845.html
Copyright © 2011-2022 走看看