docker安装mysql数据库

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 /usr/mysql/logs

创建配置文件

在配置文件目录下创建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 mysql -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/logs:/logs -v /usr/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=lzx1922026241@ 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 mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql>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成功!!!

你可能感兴趣的:(docker安装mysql数据库)