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
  • 相关阅读:
    Zookeeper搭建集群及协同
    无限可能,Elasticsearch(一)
    如何打造一款m3u8视频爬虫
    垃圾如何进行自救
    必知必会的JavaJDK工具
    如何在局域网内开一家电影院
    谈谈网络游戏中的延迟解决方案
    简述一致性哈希算法
    Python网络爬虫实战(五)批量下载B站收藏夹视频
    Python网络爬虫实战(四)模拟登录
  • 原文地址:https://www.cnblogs.com/jesen1315/p/11168746.html
Copyright © 2011-2022 走看看