zoukankan      html  css  js  c++  java
  • docker使用记录二:mysql安装与配置

    docker 安装mysql 和挂载

    仓库位置:

    https://hub.docker.com/_/mysql/
    

    安装的同时挂载data资料卷和config 配置的资料卷刀磁盘上

    docker run -d -p 3306:3306 
    -e MYSQL_USER="soaeon" 
    -e MYSQL_PASSWORD="#Liu123456" 
    -e MYSQL_ROOT_PASSWORD="#Liu123456" 
    --name mysql01 -v /docker/mysql/config/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql mysql/mysql-server:5.7
    

    你听我解释呀!

    • -d 是后台运行
    • -e(environment)MYSQL_USER 指定用户
    • -e(environment)MYSQL_PASSWORD 指定用户的密码
    • -e(environment)MYSQL_ROOT_PASSWORD 指定root用户的密码
    • --name mysql01 指定容器的名字是mysql01 对应的镜像文件是mysql/sql-server:5.7
    • -v 挂载文件的地址:文件实际所在的地址

    /docker/mysql/config/my.cnf 一定要先创建起来 my.cnf 内容如下:

    [mysqld]
    
    user=mysql
    

    /docker/mysql/data 这个文件夹也要先创建起来, 而且这个文件夹必须是个空的哟

    docker容器相关的操作命令

    • docker ps 查看运行中的容器

    • docker ps -a 查看全部的容器

    • docker images 查看所有的镜像

    • docker start mysql01 启动msyql01 容器

    • docker logs mysql01 查看mysql01容器的logs

    • docker stop mysql01 停止mysql01容器

    • docker restart mysql01 重启mysql01容器

    • docker rm mysql01 删除容器 mysql01

    • docker rmi images_id 删除镜像images_id

    mysql 配置

    PS:如果安装的过程中没有指定MYSQL_ROOT_PASSWORD的话, 我们需要去logs 中查看默认的密码哟

    操作过程如下:

    执行命令: docker logs mysql01 ,如果没没有: [Entrypoint] GENERATED ROOT PASSWORD选项,执行以下操作

    1. 进入容器的bash环境 docker exec -it mysql01 bash
    2. 登陆mysql mysql -uroot -p
    3. 输入密码 , 但是我们不知道密码是啥呀 那就直接回车吧
    4. 退出吧 exit
    5. 再次查看日志 docker logs mysql01 生成初始密码了 呃呃呃呃呃

    进入mysql的 bash环境:

    docker exec -it mysql01(容器名字) bash
    

    查询账号:

    select user ,host from user;
    
    update user set authentication_string=password('#Liu123456') where user='root';
    

    新增一个账户, 并赋予远程登陆的权限:

    CREATE USER 'root'@'%' IDENTIFIED BY '#Liu123456';
    
    grant all privileges on *.* to 'root'@'%' identified by '#Liu123456' with grant option;
    
    flush privileges;
    

    查看mysql的默认字符集:

    show variables  like '%charac%';
    
    mysql> show variables  like '%charac%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | latin1                     |
    | character_set_connection | latin1                     |
    | character_set_database   | latin1                     |
    | character_set_filesystem | binary                     |
    | character_set_results    | latin1                     |
    | character_set_server     | latin1                     |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    
    

    推出mysql的bash环境:

    mysql> exit
    Bye
    bash-4.2# exit
    exit
    [root@host /]# 
    
    

    修改挂载资料卷下的my.cnf文件中的字符集(退出bash环境,使用vi命令):

    [root@host /]# vi docker/mysql/config/my.cnf
    
    [mysql]
    default-character-set=utf8
    
    [client]
    default-character-set=utf8
    
    [mysqld]
    character-set-server=utf8
    collation-server = utf8_unicode_ci
    user=mysql
    

    docker 中安装mysql 文档

    大爷们拿去吧

    https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/docker-mysql-more-topics.html
    
  • 相关阅读:
    Java中两个Long对象如何比较是否相等
    微信小程序data数组push和remove问题
    微信小程序let和var以及const有什么区别
    小程序开发之弹出框
    Windows系统下如何卸载干净mysql
    jQuery序列化表单
    ssm框架使用详解&配置两个数据源
    nginx在一个服务器上配置两个项目,并通过两个不同的域名访问
    nginx跨域设置&文件上传大小限制
    Navicat11连接oracle数据库
  • 原文地址:https://www.cnblogs.com/soaeon/p/10933726.html
Copyright © 2011-2022 走看看