• 使用mysql docker官方镜像部署mysql5.7


    官方详细说明 地址:https://hub.docker.com/_/mysql?tab=description

    • 使用mysql 5.7 docker镜像
    • my.cnf文件放置在宿主机/etc/mysql/下
    • 数据存储在宿主机 /data/mysql下
    • 端口对外端口使用50000

     *注意事项

    如果/data/mysql下已经存在之前的数据文件,那么MYSQL_ROOT_PASSWORD=的密码就失去作用,除非清空/data/mysql下的文件

    #拉取镜像
    docker pull mysql:5.7
    #mkdir /etc/mysql/
    cat > /etc/mysql/my.cnf <<EOF    //或者cat << EOF > /etc/mysql/my.cnf
    [mysqld]
    #skip-name-resolve
    port = 3306
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    skip-character-set-client-handshake=1
    default-storage-engine=INNODB
    max_allowed_packet = 500M
    explicit_defaults_for_timestamp=1
    long_query_time = 10
    EOF
    mkdir -p /data/mysql
    
    docker run --name mysql5.7 -v /etc/mysql:/etc/mysql/conf.d -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d --restart=always -p 50000:3306 mysql:5.7
    #mysql5.7是指新mysql docker的名称
    #my-secret-pw是指mysql的root密码
    #mysql:5.7是指docker镜像的名称
    #端口映射-p 50000:3306

    docker ps -a |grep mysql

     

    进入已启动的mysql docker

    docker exec -it mysql5.7 bash

    查看mysql日志
    docker logs mysql5.7

    通过docker启动mysql客户端

    #mysql客户端
    docker run -it --rm mysql:5.7 mysql -h8.210.199.136 -uroot -P50000 -pmy-secret-pw
    #8.210.199.136 为主机名
    #P50000端口
    #my-secret-pw密码

     备份数据库

    mkdir -p /data/backup/
    docker exec mysql5.7 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /data/backup/all-databases.sql

    #mysql5.7 是docker的名字

    恢复数据库

    docker exec -i mysql5.7 sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /data/backup/all-databases.sql

    #mysql5.7 是docker的名字

  • 相关阅读:
    vi命令大全
    理解proc文件系统
    读目录
    取得系统资源信息
    qtempinc
    我实现的一个正则表达式代码
    oracle内置函数大全
    STL算法
    unix基础教程
    两日期间的天数
  • 原文地址:https://www.cnblogs.com/faberbeta/p/13414833.html
Copyright © 2020-2023  润新知