zoukankan      html  css  js  c++  java
  • Docker配置mysql

    首先需要从docker上拉取mysql镜像

    一:拉取命令操作
    [root@localhost my.Shells]# docker pull mysql
    Using default tag: latest
    Trying to pull repository docker.io/library/mysql ...
    latest: Pulling from docker.io/library/mysql
    f49cf87b52c1: Pull complete
    78032de49d65: Pull complete
    837546b20bc4: Pull complete
    9b8316af6cc6: Pull complete
    1056cf29b9f1: Pull complete
    86f3913b029a: Pull complete
    f98eea8321ca: Pull complete
    3a8e3ebdeaf5: Pull complete
    4be06ac1c51e: Pull complete
    920c7ffb7747: Pull complete
    Digest: sha256:7cdb08f30a54d109ddded59525937592cb6852ff635a546626a8960d9ec34c30

    二:查看docker的镜像
    [root@localhost my.Shells]# docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    docker.io/mysql latest f008d8ff927d 9 days ago 408.5 MB


    三:运行docker的mysql命令
    [root@localhost my.Shells]# docker run --name docker-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=wzy123 -d mysql //用户默认是root,密码默认是root的密码
    283a1fa17fef310d9e329e11f10b8179e5be5fd88310be64fb0b4fa75ab5d80f


    四:查看mysql容器是否启动
    [root@localhost my.Shells]# docker ps //mysql容器已经启动了
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    283a1fa17fef mysql "docker-entrypoint.sh" 7 seconds ago Up 6 seconds 0.0.0.0:3306->3306/tcp docker-mysql


    五:docker使用命令行登录mysql
    [root@localhost my.Shells]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    283a1fa17fef mysql "docker-entrypoint.sh" 18 hours ago Up 3 seconds 0.0.0.0:3306->3306/tcp docker-mysql
    [root@localhost my.Shells]# docker exec -it docker-mysql bash docker-mysql(镜像容器的名称)
    root@283a1fa17fef:/# ls
    bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var


    root@283a1fa17fef:/# mysql -u root -p
    Enter password: //wzy123
    Welcome to the MySQL monitor. Commands end with ; or g.
    Your MySQL connection id is 4
    Server version: 5.7.21 MySQL Community Server (GPL)

    Copyright (c) 2000, 2018, 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.

    mysql>

    注意:当使用docker rm [id]后,mysql数据库的所有数据会全部清除,再重新开启一个镜像是一个崭新的数据库。

    如果发现navicat远程连接mysql出现


    1. 首先在容器中登录查看mysql版本
    mysql> status;
    --------------
    mysql Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)

    2. 进行授权远程连接(注意mysql8.0跟之前的授权方式不同)
    授权
    GRANT ALL ON *.* TO 'root'@'%';
    刷新权限
    flush privileges;

    此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则
    3. 更改加密规则
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

    4. 更新root用户密码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

    刷新权限
    flush privileges;
    OK,设置完成,再次使用 Navicat 连接数据库

    What do you want to be?
  • 相关阅读:
    PDB文件格式
    “无法查找或打开 PDB 文件 ”
    HAR的MA节点个数稳定?
    用正则表达式过滤 Android 调试时的无用 Log
    From C# to Java (1)
    From C# to Java (0)
    第三届 “创意正能量” 华中地区移动 App 分析与设计大赛 参赛心得
    PrimeSense 三维重建开发小谈 (2)
    IOS报错:Unexpected ‘@’ in program
    EMGUCV第一天学习
  • 原文地址:https://www.cnblogs.com/CatsBlog/p/9900873.html
Copyright © 2011-2022 走看看