zoukankan      html  css  js  c++  java
  • Docker通过挂载安装mysql

    一、安装 

     mkdir -p ./docker/mysql
     cd docker/
     cd mysql/
     mkdir conf
     mkdir data
     mkdir logs

     mkdir mysql-files

    cd conf 

    vim my.cnf

      [mysqld]

      user=mysql


     docker pull mysql
     docker run -e MYSQL_ROOT_PASSWORD=KMSD2016064 -d -p 3306:3306 --name mysql01 mysql

     

    docker run -e MYSQL_ROOT_PASSWORD=KMSD2016064 -d -p 3306:3306 -v ~/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v ~/docker/mysql/data:/var/lib/mysql -v ~/docker/mysql/logs:/logs -v ~/docker/mysql/mysql-files:/var/lib/mysql-files --name mysql01 mysql

    二、修改默认字符集并创建用户

    docke exec -it mysql01 bash

    mysql -uroot -p

    修改默认字符集

    show variables like '%char%'

    +--------------------------+--------------------------------+
    | Variable_name | Value |
    +--------------------------+--------------------------------+
    | character_set_client | latin1 |
    | character_set_connection | latin1 |
    | character_set_database | utf8mb4 |
    | character_set_filesystem | binary |
    | character_set_results | latin1 |
    | character_set_server | utf8mb4 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql-8.0/charsets/ |
    +--------------------------+--------------------------------+

    vim mycnf

    #insert
    [mysqld]
    user=mysql
    character-set-server=utf8
    
    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8

    mysql> show variables like '%char%';
    +--------------------------+--------------------------------+
    | Variable_name | Value |
    +--------------------------+--------------------------------+
    | character_set_client | utf8 |
    | character_set_connection | utf8 |
    | character_set_database | utf8 |
    | character_set_filesystem | binary |
    | character_set_results | utf8 |
    | character_set_server | utf8 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql-8.0/charsets/ |
    +--------------------------+--------------------------------+
    8 rows in set (0.01 sec)

    使用Navicat访问,由于使用的是mysql最新版本,mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,加密方式变了

      alter user 'root'@'%' identified by 'KMSD2016064' password expire never; 改变加密方式

      alter user 'root'@'%' identified with mysql_native_password by 'KMSD2016064'; 更新用户密码

      flush privileges;

    正常情况下我们不会把root暴露出去,所以需要创建新的用户

      create user 'jesen'@'%' identified by 'KMSD2016064';

      grant all privileges on *.* to 'jesen'@'%';

      alter user 'jesen'@'%' identified with mysql_native_password by 'KMSD2016064';

    三、官方参考

      字符集编码和创建用户密码也可以在docker run 的时候指定,具体可参考 https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/docker-mysql-more-topics.html:

      docker run -d -p 3306:3306 -e MYSQL_USER="test" -e MYSQL_PASSWORD="password" -e MYSQL_ROOT_PASSWORD="password" --name [Name] [ImageName] --character-set-server=utf8 --collation-server=utf8_general_ci
  • 相关阅读:
    May 24th 2017 Week 21th Wednesday
    May 23rd 2017 Week 21st Tuesday
    全球顶尖大学的UX课程资源,英文!
    如何设计出一款出色的结账表单
    快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力
    界面设计中如何增强CTA按钮召唤力?
    10个实用的UX设计作品推销小窍门
    UX术语详解:任务流,用户流,流程图以及其它全新术语
    让你不再恋家的9款小众时尚的酒店网站设计
    聊聊原型设计中的团队管理功能
  • 原文地址:https://www.cnblogs.com/jesen1315/p/11168746.html
Copyright © 2011-2022 走看看