• Docker安装Mysql


    前言

    本章将使用docker安装Mysql,前提条件是已经安装完docker并会使用docker。
    如果还没有安装docker,可以参考在CentOS7下安装Docker
    如果还不会docker,但需要学习mongodb相关的知识,可以参考另一篇博客,那里详细讲述了如何在Linux上安装Mysql环境。

    附上博客链接 博客传送门

    安装MySql

    在dockerhub上查找镜像


    拉取镜像

    这里我们拉取官网最新8.0镜像

    [root@e2ab0x9jme3furrd ~]# docker pull mysql
    

    查看镜像

    在镜像列表中我们可以看到刚刚拉取的镜像

    [root@e2ab0x9jme3furrd ~]# docker images
    REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
    mysql         latest    b05128b000dd   10 days ago    516MB
    hello-world   latest    feb5d9fea6a5   2 months ago   13.3kB
    centos        latest    5d0da3dc9764   2 months ago   231MB
    

    创建数据目录和配置文件

    在宿主机创建mysql的配置文件的目录和数据目录

    $ mkdir -p /usr/mysql/conf /usr/mysql/data
    

    创建配置文件

    在配置文件目录下创建MySQL的配置文件my.cnf

    $ vim /usr/mysql/conf/my.cnf
    

    添加配置文件信息

    [client]
    #socket = /usr/mysql/mysqld.sock
    default-character-set = utf8mb4
    [mysqld]
    #pid-file        = /var/run/mysqld/mysqld.pid
    #socket          = /var/run/mysqld/mysqld.sock
    #datadir         = /var/lib/mysql
    #socket = /usr/mysql/mysqld.sock
    #pid-file = /usr/mysql/mysqld.pid
    datadir = /usr/mysql/data
    character_set_server = utf8mb4
    collation_server = utf8mb4_bin
    secure-file-priv= NULL
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Custom config should go here
    !includedir /etc/mysql/conf.d/
    

    创建容器

    [root@e2ab0x9jme3furrd ~]# docker run --restart=unless-stopped -d --name mysql01 -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
    e364ef1e8a4f7fa6f50ac66edfe5d66e7441e0ecc005fa6c43e9f5dc6237ece1
    

    参数解释:
    -v : 挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录
    -d : 后台运行容器
    -p 映射容器端口号和宿主机端口号
    -e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码

    查看容器启动情况

    [root@e2ab0x9jme3furrd ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED              STATUS              PORTS                                                  NAMES
    e364ef1e8a4f   mysql     "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql01
    

    ** 问题:虽然已经安装好了mysql,但是无法使用navicat工具进行连接时报错,即无法远程连接。**

    解决问题

    进入容器内部

    [root@e2ab0x9jme3furrd ~]# docker exec -it mysql01 /bin/bash
    

    连接mysql

    root@e364ef1e8a4f:/# mysql -uroot -p
    Enter password: 
    

    修改访问主机以及密码,设置所有主机可访问

    mysql> use mysql
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
    Query OK, 0 rows affected (0.01 sec)
    

    刷新权限

    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    

    至此,通过Docker方式安装Mysql成功!!!

  • 相关阅读:
    opencv中的cv::KeyPoint和cv::DMatch
    Spring Security
    错误习题笔记
    Kubernetes 权威指南 深入掌握Service
    Maven 仓库解析
    DDD学习思考记录
    安卓手机mitmproxy抓包
    小米8root
    Linux下快速删除大量文件
    Ubuntu修改主机名和查看主机名的方法
  • 原文地址:https://www.cnblogs.com/Gazikel/p/15675924.html
Copyright © 2020-2023  润新知