• Docker安装并配置MySQL5.7


    一. 版本

      CentOS:7.6

      Docker:19.03

      MySQL:5.7

     

    二. 下载并安装

      1. 拉取MySQL镜像:

         docker pull mysql:5.7 

      2. 创建MySQL在宿主机对应的目录映射:

         mkdir -p /usr/local/mysql/{logs,data} 

      3. 安装MySQL:

    // 切换到宿主机的mysql目录
    cd /usr/local/mysql
    // 创建mysql容器
    docker run -p 3306:3306 --name my_mysql 
    -v $PWD/logs:/var/log/mysql 
    -v $PWD/data:/var/lib/mysql 
    --restart=always --privileged=true 
    -e MYSQL_ROOT_PASSWORD=123456 
    -d mysql:5.7
    // 命令解释
    // docker run :是docker创建容器命令
    // -p 宿主机端口:容器端口 :端口映射
    // --name 容器名 :自定义容器名
    // -v 宿主机目录:容器目录 :目录映射
    // 在这里目录映射了mysql容器中的日志、数据库文件
    // --restart=always :docker启动时自启动该容器
    // --privileged=true :获取容器真实root权限
    // -e MYSQL_ROOT_PASSWORD :设置mysql root账户初始密码
    // -d 镜像:版本 :选择要创建容器的镜像,并在后台运行

      4. 注意:

        (1) 查看生成的mysql容器的时候,端口映射会出现一个33060的端口,这是MySQL的MySQL Shell操作所需要的X协议端口,属于必备端口。

          详见:https://dev.mysql.com/doc/mysql-port-reference/en/mysql-ports-reference-tables.html#mysql-client-server-ports

        (2) 不要映射 /etc/mysql 配置文件目录,会把镜像默认的配置文件夹替换为空文件夹。

    三. 配置MySQL容器

      1. 进入mysql容器:

         docker exec -it my_mysql /bin/bash 

      2. 编辑配置文件以前需要更新关联并下载文本编辑器:

    // 设置容器时间为当前时间,有的容器可能不准导致容器更新关联失败
    date -s "当前时间"
    // 示例:date -s "20200926 21:07:00" #yyyymmdd hh:mm:ss
    // 更新关联,因为默认服务器不在国内,所以速度慢的惊人
    apt-get update
    // 安装文本编辑器nano
    apt-get install nano

      3. 编辑

    // 安装好nano后,跳转到mysql容器自动生成的配置文件目录下
    cd /etc/mysql
    // 打开配置文件my.cnf
    nano my.cnf
    // 在文件末尾添加以下字段,此时我默认编码格式为utf8,如果用GBK自己改即可
    [mysql]
    default-character-set=utf8mb4
    [mysqld]
    character_set_server=utf8mb4
    init_connect='SET NAMES utf8'
    lower_case_table_names = 1// 保存配置文件,并使用exit命令退出mysql容器

      4. 重启mysql容器:

         docker restart my_mysql 

      5. 查看配置文件是否生效

    // 重新进入mysql容器中
    docker exec -it my_mysql /bin/bash
    // 登陆mysql客户端
    mysql -uroot -p123456
    // 依次执行命令
    show variables like 'character_set%';
    show variables like 'collation%';

        

  • 相关阅读:
    怎样才是全能的程序员?
    [HDU 2553]N皇后问题
    [HDU 1870]愚人节的礼物
    [HDU 1016]Prime Ring Problem
    [HDU 1241]Oil Deposits
    [POJ 3250]Bad Hair Day
    [HDU 1276]士兵队列训练问题
    [POJ 2796]Feel Good
    [HDU 1237] 简单计算器
    总算开通博客园啦~
  • 原文地址:https://www.cnblogs.com/NyanKoSenSei/p/13737000.html
Copyright © 2020-2023  润新知