zoukankan      html  css  js  c++  java
  • docker 安装mysql

    docker 环境 是 CentOS 8.1

    拉取镜像
    docker pull mysql:8.0.21
    

    在宿主机创建持久化 mysql data 及mysql.cnf 数据目录和配置文件目录 日志目录

    mkdir -p  /docker-root/mysql/conf.d
    mkdir -p  /docker-root/mysql/data
    mkdir -p  /docker-root/mysql/logs 
    

    如果是liunx系统 添加配置文件
    /docker-root/mysql/conf.d 目录下加配置文件 mysql.cnf 内容如下

    [mysqld] 
    lower_case_table_names=1
    

    运行容器

    docker run --name mysql_docker --restart=always -d -p 3306:3306 -v /docker-root/mysql/conf.d:/etc/mysql/conf.d -v /docker-root/mysql/logs:/logs -v /docker-root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.21
    

    命令说明

    run                 运行一个docker容器
    --name           后面这个是生成的容器的名字mysql_docker
    -p 3306:3306  表示这个容器中使用3306(第二个)映射到本机的端口号也为3306(第一个) 
    -e MYSQL_ROOT_PASSWORD=123456  初始化root用户的密码
    -d                   表示使用守护进程运行,即服务挂在后台
    -v 表示挂载宿主机目录 到容器目录  conf.d 配置目录  logs 日志目录  data 数据目录
    

    进入MySQL容器,

    docker exec -it mysql_docker /bin/bash

    登陆mysql

    mysql -u root -p
    
    Enter password:  #输入 初始化密码 123456
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 9
    Server version: 8.0.20 MySQL Community Server - GPL
    
    Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    

    1,容器中登录mysql,查看mysql的版本

    mysql> status;
    
    mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
    

    2,进行授权远程连接(注意mysql 8.0跟之前的授权方式不同)授权

    mysql> GRANT ALL ON *.* TO 'root'@'%'; 
    

    刷新权限

    mysql> flush privileges; 
    

    此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则

    更改加密规则

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 
    

    更新root用户密码

    mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'MySQL2019&'; 
    

    刷新权限

    mysql> flush privileges; 
    

    OK,设置完成,再次使用 Navicat 连接数据库

    退出mysql数据库

    mysql> exit;
    

    退出当前mysql容器

    exit;
    

    优化mysql所用内存

    通过docker查看容器使用内存情况

    docker stats
    

    一般情况下,默认装的Mysql是8.0以上,占用内存在350M以上,这个对于小机器来说,占比还是比较大的,可以优化。

    进入文件夹

    cd /home/docker/mysql/conf.d/
    

    查看 .cnf 文件,如果没有,随便新建个,例如

    vim my.cnf
    

    输入内容,并保存

    [mysqld] 
    performance_schema = OFF  
    

    重启mysql 容器

    docker restart mysql 容器的id 
    

    再查看

    docker stats
    

    清理linux中buff/cache过大的方法

    第一步:sync先同步一下

    sync
    

    第二步:清cache

    echo 3 > /proc/sys/vm/drop_caches
    
  • 相关阅读:
    博弈论基础与习题(未完)
    三视图求最多方块数
    二维前缀和应用
    卡特兰数
    UVa 11806 Cheerleaders(容斥定理)
    逃出升天
    求排列的逆序数
    求2进制下1的个数
    字符串哈希基础与应用
    网络流基础与应用
  • 原文地址:https://www.cnblogs.com/z_lb/p/12993080.html
Copyright © 2011-2022 走看看