• Docker安装Mysql


    1、搜索镜像

    docker search mysql

    2、拉取镜像

    docker pull mysql

    3、查看镜像

    docker images

    4、创建目录

    mkdir -p /software/mysql/logs
    mkdir -p /software/mysql/data
    mkdir -p /software/mysql/conf
    mkdir -p /sofrware/mysql/mysql-files

     

    5、docker运行命令相关参数

    –name:容器名,此处命名为mysql
    -e:配置信息,此处配置mysql的root用户的登陆密码
    -p:端口映射,此处映射 主机3306端口 到 容器的3306端口
    -d:源镜像名,此处为 mysql
    -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录
    不建立目录映射
    docker run -p 3306:3306 --name mysql  
    -e MYSQL_ROOT_PASSWORD=123456 
    -d mysql
    
    建立目录映射

      docker run -p 3306:3306 --name mysql
      -v /software/mysql/conf:/etc/mysql
      -v /software/mysql/logs:/var/log/mysql
      -v /software/mysql/data:/var/lib/mysql
      -v /software/mysql/mysql-files:/var/lib/mysql-files
      -e MYSQL_ROOT_PASSWORD=123456
      -d mysql

    -e MYSQL_ROOT_PASSWORD        :设置mysql密码
    -v /home/mysql/:/var/lib/mysql:挂载磁盘实现数据持久化
    --lower_case_table_names=1    :忽略大小写,docker mysql默认区分大小写的
    注:参数顺序一定要对,--lower_case_table_names=1要加在镜像名后面,镜像名前面是参数,后面是mysql配置,不然会报错

     lower_case_table_names=1 只能在初始化时配置,不然会报

    6、使用目录映射

     

    7、查看运行

    docker ps

    8、进入容器控制台

    docker exec -it mysql bash

    docker exec :在运行的容器中执行命令
    语法
    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    OPTIONS说明:
    -d :分离模式: 在后台运行
    -i :即使没有附加也保持STDIN 打开
    -t :分配一个伪终端

    9、进入数据库,没有密码

    mysql -h 127.0.0.1 -u root -p

     

     10、查询mysql版本

    select version();

     11、修改用户名

    ALTER user 'root'@'localhost' IDENTIFIED BY 'Test1234567!'

    12、查看用户名、密码

    select host,user,authentication_string from mysql.user;

    13、修改访问

    update mysql.user set host='%' where user='root';

     14、查看docker 信息

    docker inspect mysql

     15、创建远程访问用户

    创建用户
    create user test@'%' identified  by 'Test1234567!';
    授权
    grant all privileges on *.* to test@'%' with grant option;
    刷新
    flush privileges;

    报错

    因为mysql8使用的是caching_sha2_password加密规则,最简单的方法是修改远程连接用户的加密规则:
    ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'Test1234567!';

      ALTER USER 'test'@'%' IDENTIFIED BY 'Test1234567!' PASSWORD EXPIRE NEVER;
      ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'Test1234567!';

      FLUSH PRIVILEGES;

    16、成功连接

     

    错误:

    mysqld: Error on realpath() on '/var/lib/mysql-files' (Error 2 - No such file or director

    解决方法:

          当指定了外部配置文件与外部存储路径时,也需要指定 /var/lib/mysql-files的外部目录,

      所以在主机新建/software/mysql/mysql-files目录,

      在启动容器时 需要加上

      -v /software/mysql/mysql-files:/var/lib/mysql-files

    注:

    mysql在linux中区分大小写

    show variables like '%lower_case_table_names%';

     值为1,表示是大小写不敏感,而linux环境的mysql是0. 

    修改方法: 
    1. 找到mysql的安装位置 
    2. 找到主目录下的my.ini配置文件 
    3. 在[mysqld]节点下添加lower-case-table-names=0 
    4. 重启mysql服务

     docker中修改my.cnf配置文件

    1、进入容器

    docker exec -it 容器ID /bin/bash

    2、进入目录

    cd /etc/mysql
    如果不安装vim在使用vim的时候会报找不到,在修改docker中mysql的配置文件,无法使用vi命令。
    apt-get update
    或 apt
    -get install vim

    3、修改

    vi my.cnf

    4、退出容器

    如果要退出bash有2种操作:1)Ctrl + d 退出并停止容器;2)Ctrl + p + q 退出并在后台运行容器;

    5、重启容器

    docker restart 容器ID

    注注注:

     # 在此目录找到nginx容器的配置文件

    find ./ -name nginx.conf








  • 相关阅读:
    满屏的宽高纯CSS布局
    截屏上传插件开发流程
    COM ACTIVEX 中的BSTR 类型与其它类型转换
    线程中访问控件
    OOP三言两语
    通过iframe上传
    历年作品点评
    每周进度及工作量统计2016090820160915
    英文词频统计的java实现方法
    四人小组项目——连连看
  • 原文地址:https://www.cnblogs.com/xuchen0117/p/12102997.html
Copyright © 2020-2023  润新知