zoukankan      html  css  js  c++  java
  • Docker 安装 MySQL

     1、 docker search mysql

    2、docker pull mysql/mysql-serer

    3、mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf

    data目录将映射为mysql容器配置的数据文件存放路径

    logs目录将映射为mysql容器的日志目录

    conf目录里的配置文件将映射为mysql容器的配置文件

    4、docker run -d -p 13306:3306

      --name mysql

      --restart=always

      --privileged=true

      -v /var/docker/mysql/data:/var/lib/mysql -v /var/docker/mysql/conf.d:/etc/mysql/conf.d -v /var/docker/mysql/logs:/var/log/mysql

      -e MYSQL_USER = "aaaa"

      -e MYSQL_PASSWORD="xxxxxx"

       -e MYSQL_ROOT_PASSWORD=password 

       mysql

      --character-set-server=utf8 --collation-server=utf8_general_ci

    • -p 123456:3306:将容器的3306端口映射到主机的12356端口

    • -v /var/docker/mysql/conf.d:/etc/mysql/conf.d:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf

    • -v /var/docker/mysql/logs:/var/log/mysql:将主机当前目录下的logs目录挂载到容器的/logs

    • -v /var/docker/mysql/datadir:/var/lib/mysql :将主机当前目录下的datadir目录挂载到容器的//var/lib/mysql

    • -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

    • 在docker run中加入 --privileged=true  给容器加上特定权限 。否则会chown: changing ownership of ‘/var/lib/mysql/....‘: Permission denied (http://www.cnblogs.com/performancetest/p/5719420.html

    • -d: 后台运行容器,并返回容器ID

       

    #进入mysql的终端, 如果提示客户端连接caching-sha2-password问题, 按如下修改
     
    5、docker exec -it container-name mysql -uroot -p123456

    1. use mysql;  #使用mysql库
    2. ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;     #修改加密规则  
    3. ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
    1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPassword';
    2. ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'NewPassword';
    1.   #更新密码(mysql_native_password模式)  
    2. update user set host='%' where user = 'root';  #设置root在任意ip可以使用(支持远程连接)  
    3. FLUSH PRIVILEGES;   #刷新权限   
    4. quit; #退出控制台 


    CREATE USER 'name'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    GRANT ALL PRIVILEGES ON * . * TO 'name'@'localhost';

    6、 docker exec -it container-id bash //进入container 内命令行模式

  • 相关阅读:
    git 合并两个仓库
    git 合并两个仓库
    操作系统
    域名
    域名
    .NET Framework基本概念
    .NET Framework基本概念
    拓扑排序
    PHP 数组
    PHP Switch 语句
  • 原文地址:https://www.cnblogs.com/leon-ytparty/p/9354315.html
Copyright © 2011-2022 走看看