Docker安装配置MySQL的实现步骤

 更新时间:2021年11月23日 10:31:26   作者:花伤情犹在  
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。在本教程中,会带大家正确安装配置MySQL在Docker

前言

MySQL 是世界上最受欢迎的开源数据库,So~本文将演示如何在Docker上安装并且配置MySQL。

在这里插入图片描述

环境

  • CentOS 7
  • Docker 20.10.10

安装

拉取镜像

docker pull mysql

如果要指定版本,在mysql后面加上:+版本号,例如:

docker pull mysql:8.0.16

这里直接拉取最新版MySQL

在这里插入图片描述

查看镜像

docker images

在这里插入图片描述

创建并启动MySQL容器

创建数据目录和配置文件

提前在宿主机创建好放置mysql的配置文件的目录和数据目录,并且进行授予权限,避免挂载外部配置和数据时启动失败:

在这里插入图片描述

创建放置mysql的配置文件的目录和数据目录

mkdir -p /mydata/mysql/

设置文件夹权限

chmod -R 755 /mydata/mysql

第一个数字表示文件所有者的权限 第二个数字表示与文件所有者同属一个用户组的其他用户的权限 第三个数字表示其它用户组的权限。
权限分为三种:读(r=4),写(w=2),执行(x=1) 。
综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。 所以,chmod
755 设置用户的权限为:
1.文件所有者可读可写可执行 --7
2.与文件所有者同属一个用户组的其他用户可读可执行 --5
3.其它用户组可读可执行

创建my.cnf配置文件

mkdir -p /mydata/mysql/conf
touch /mydata/mysql/conf/my.cnf

编辑my.cnf配置文件

vi /mydata/mysql/conf/my.cnf

添加以下配置内容

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
secure_file_priv=/var/lib/mysql

提醒

无论你是否使用我的配置,如果你的安装的是新版MySQL,务必要复制这一句:

secure_file_priv=/var/lib/mysql

第一次创建启动MySQL容器的时候,MySQL会访问/var/lib/mysql文件夹,如果没有权限就会导致无法启动,使用docker ps之后看不到mysql容器在运行,需要设置secure_file_priv的值指定为/var/lib/mysql,这样就有权限正常访问和读写/var/lib/mysql目录

Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Suppliedvalue : /var/lib/mysql-files
译文:无法访问–secure-file-priv的目录。请确保该目录存在并且可由MySQL服务器访问。提供的值:/var/lib/mysql文件

  • secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出
  • secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
  • secure_file_priv的值为空,表示不对mysqld 的导入|导出做限制

创建并启动MySQL容器命令

sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:latest

参数说明:

  • -p 3306:3306:将容器的3306端口映射到主机的3306端口
  • --name mysql:定义容器名称为mysql
  • -v /mydata/mysql/log:/var/log/mysql :将MySQL的日志文件夹挂载到主机
  • -v /mydata/mysql/data:/var/lib/mysql:将MySQL的数据文件夹挂载到主机
  • -v /mydata/mysql/conf:/etc/mysql:将MySQL的配置文件夹挂载到主机
  • -e MYSQL_ROOT_PASSWORD=root:初始化root用户密码
  • -d mysql:latest:选择MySQL版本为latest的镜像构建容器

在这里插入图片描述

查看正在运行的容器

docker ps

在这里插入图片描述

进入到MySQL容器内部进行配置

进入命令

docker exec -it 容器id ./bin/bash

在这里插入图片描述

连接MySQL

这里因为我们自己设置的MySQL默认密码为root所以p后面为root

mysql -uroot -proot

在这里插入图片描述

更改MySQL密码

使用mysql库

use mysql

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

 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

注意:mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接

测试连接

测试前请保证关闭了防火墙,如果是云服务器记得开放3306规则

Linux关闭防火墙

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

云服务开放3306端口

在这里插入图片描述

使用Navicat测试连接

在这里插入图片描述

使用SQLyog测试连接

在这里插入图片描述

Docker安装和配置MySQL教程结束!

以上就是Docker安装配置MySQL的实现步骤的详细内容,更多关于Docker 安装MySQL的资料请关注脚本之家其它相关文章!

相关文章

  • Docker实践之python应用容器化

    Docker实践之python应用容器化

    这篇文章主要介绍了Docker实践之python应用容器化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • docker如何对已经启动的容器添加目录映射(挂载目录)

    docker如何对已经启动的容器添加目录映射(挂载目录)

    当我们创建容器之后,不可避免会遇到修改配置文件的操作,下面这篇文章主要给大家介绍了关于docker如何对已经启动的容器添加目录映射(挂载目录)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Docker Windows最新版(4.17.x)修改镜像存储路径的详细步骤

    Docker Windows最新版(4.17.x)修改镜像存储路径的详细步骤

    这篇文章主要介绍了Docker WIndows最新版(4.17.x)修改镜像存储路径的步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Docker制作镜像的两种方式(在线制作和离线制作)

    Docker制作镜像的两种方式(在线制作和离线制作)

    我们知道要创建一个Docker容器,要先有Docker镜像,Docker镜像怎么创建的呢?下面这篇文章主要给大家介绍了关于Docker制作镜像的两种方式(在线制作和离线制作)的相关资料,需要的朋友可以参考下
    2023-03-03
  • docker 设置windows存储路径的操作

    docker 设置windows存储路径的操作

    这篇文章主要介绍了docker 设置windows存储路径的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法)

    linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法)

    这篇文章主要介绍了linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • docker快速入门教程

    docker快速入门教程

    这篇文章主要为大家详细介绍了docker快速入门教程,知识结构简单,对docker有一个初步的认识,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 详解docker搭建redis集群的环境搭建

    详解docker搭建redis集群的环境搭建

    本篇文章主要介绍了详解docker搭建redis集群的环境搭建,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 在Docker中构建并运行Nginx容器的完整教程

    在Docker中构建并运行Nginx容器的完整教程

    Docker 作为一种强大的容器化平台,使得开发、测试和部署变得更加高效和灵活,Nginx 是一款广泛使用的高性能 Web 服务器和反向代理服务器,适用于各种场景,在本教程中,我们将详细介绍如何在 Docker 中构建并运行一个 Nginx 容器,需要的朋友可以参考下
    2024-09-09
  • centos7搭建docker私人仓库的方法(kubernetes)

    centos7搭建docker私人仓库的方法(kubernetes)

    这篇文章主要介绍了centos7搭建docker私人仓库的方法(kubernetes),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03

最新评论