基于docker容器部署MySQL数据库

这篇具有很好参考价值的文章主要介绍了基于docker容器部署MySQL数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,概要.... 2

二,环境准备.... 3

2.1,docker部署.... 3

三,使用docker部署mysql 6

3.1、创建数据存放目录.... 6

3.2、创建bridge网络并指定IP区间.... 6

3.3、Docker安装MySQL. 6

3.4、自定义配置.... 7

四,MySQL简单的配置.... 9

4.1、在容器 mysql 中开启一个交互模式的终端.... 9

4.2、mysql登录.... 9

4.3、给予远程用户所有表所有权限.... 9

4.4,验证Navicat远程连接MySQL. 10

五,数据库的导出备份.... 11

5.1,数据库备份.... 11

5.2,数据库还原.... 12

六,MySQL常用简单命令   13

一,概要

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • MySQL 是开源的,目前隶属于 Oracle 旗下产品。
  • MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • MySQL 使用标准的 SQL 数据语言形式。
  • MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
  • MySQL 对 PHP 有很好的支持,PHP 是很适合用于 Web 程序开发。
  • MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
  • \MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。

二,环境准备

2.1,docker部署

# 安装docker的前提条件:

1) .必须是64位CPU架构的计算机,Docker目前不支持32位CPU;

2) .运行Linux3.8或更高版本内核,CentOS时内核必不小于3.10;

3) .内核必须支持一种合适的存储驱动,可以是Device Manager、AUFS、vfs、btrfs、以及默认的驱动Device Mapper中的一个;

4) .内核必须支持并开启cgroup和命名空间namespace功能。

# 使用下面的命令来查看centos的内核版本

uname –r

基于docker容器部署MySQL数据库

2.1.1 yum 部署docker

#注意: 这里是首次安装, 之前安装过的要先卸载旧版本的包哦!!!

更新yum包, 确保最新

yum update

# 卸载旧版本docker,新机器可以忽略

sudo yum remove docker \

                docker-common \

                docker-selinux \

                docker-engine

# 安装需要的依赖软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置yum docker 源

//官方镜像

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

//阿里镜像

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装DockerCE

sudo yum install docker-ce

2.1.2 脚本安装

脚本安装(多用于测试和开发环境)

$ curl -fsSL https://get.docker.com -o get-docker.sh

$ sudo sh get-docker.sh

2.2 配置镜像加速器

# 以阿里云镜像加速器为例

基于docker容器部署MySQL数据库

注意:每个阿里云账户所持有镜像加速器均不同

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": ["https://**20l7s9.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

三,使用docker部署mysql

3.1、创建数据存放目录

注意:这是数据库数据存放目录,保障下次重新安装数据不丢失

mkdir -p /data/mysql/data

chmod 777 /data/mysql/data

cd /data/mysql/data

3.2、创建bridge网络并指定IP区间

注意:多容器IP访问必备

#创建自定义网络

docker network create --driver bridge --subnet 172.0.0.0/16 ****

#查看已存在网络

docker network ls

3.3、Docker安装MySQL

端口:3306,初始密码:123456

数据存放目录:/dat/mysql/data

#创建mysql容器

此处以虚拟机部署安装为例,省略指定网络,IP

sudo docker run -d -p 3306:3306 \

--name mysql --privileged=true \

-v /data/mysql/data:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=123456 \

mysql

注意:若不加字段--privileged=true可能会报权限错误,报错信息如下图所示:

基于docker容器部署MySQL数据库

 

基于docker容器部署MySQL数据库

基于docker容器部署MySQL数据库

3.4、自定义配置

3.4.1、创建配置存放映射目录

mkdir -p /data/mysql/data /data/mysql/logs /data/mysql/conf

chmod -R 755 /data/mysql/

3.4.2、将 MySQL 容器里的配置文件复制到该路径

docker cp mysql:/etc/mysql/my.cnf /data/mysql/conf

3.4.3、删除 MySQL 容器

docker rm -f mysql

基于docker容器部署MySQL数据库

3.4.4,重新创建MySQL容器

#重新创建MySQL容器将数据,日志,配置文件映射到本机

docker run -p 3306:3306 --name mysql8 --restart always \

-v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf \

-v /data/mysql/logs:/logs \

-v /data/mysql/data:/var/lib/mysql \

-v --privileged=true \

-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.31

3.4.5、编辑配置文件

vim /data/mysql/conf/my.cnf

# 最大连接数

max_connections=10000

# 设置默认时区

default-time_zone='+8:00'

#重启 MySQL 容器

docker restart mysql

四,MySQL简单的配置

4.1、在容器 mysql 中开启一个交互模式的终端

进入docker容器中

docker exec -it mysql /bin/bash

4.2、mysql登录

mysql -u root –p

基于docker容器部署MySQL数据库

4.3、给予远程用户所有表所有权限

GRANT ALL ON *.* TO 'root'@'%';

# 更改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

# 远程访问

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

# 刷新权限

flush privileges;

# 退出

exit

4.4,验证Navicat远程连接MySQL

基于docker容器部署MySQL数据库

基于docker容器部署MySQL数据库

五,数据库的导出备份

5.1,数据库备份

#进入容器

docker exec -it 【容器ID】 /bin/bash 

或者

docker exec -it 【容器ID】 bash

# 数据库导出 (docker 进入容器之后操作)

 # 常用

# 导出整个数据库(包括数据库中的数据)

mysqldump -u username -p 数据库 > 数据库.sql

# 导出数据库结构(不含数据)

mysqldump -u username -p -d 数据库 > 数据库.sql   

# 导出数据库中的某张数据表(包含数据)

mysqldump -u username -p 数据库 表 >  表.sql

导出到指定文件路径下

查看容器映射卷也就是挂载文件夹的地方(容器中的/var/lib/mysql路径会挂载到linux的某个目录下面,下面命令查看)

docker inspect name/id  | grep Mounts -A 20

基于docker容器部署MySQL数据库

# 导出到指定路径下为

   mysqldump -R -uroot -p 数据库 > /var/lib/mysql/数据库_bak.sql

# /var/lib/mysql/ 为容器中的路径,执行上面的命令之后查看该路径下面是否有数据库_bak.sql生成

# 相应的在Linux本地系统挂载路径下同样生成 数据库_bak.sql

# 备份完成之后退出容器

5.2,数据库还原

导入数据库(docker 进入容器之后操作)

mysql -uroot -p

use 【数据库名称】;

source 【sql文件】# 此处source 数据库的存放路径为Linux系统本地挂载MySQL的路径

例:source /data/MySQL/data/数据库.sql

# 导入数据到数据库

mysql -uroot -D数据库名

# 导入数据到数据库中得某个表

mysql -uroot -D数据库名  表名

六,MySQL常用简单命令

# 删除mysql命令

docker rm mysql

# 强制删除mysql容器

docker rm -f mysql

# 删除mysql镜像

docker rmi mysql

# 查看docker镜像

docker images

# 查看运行中容器

docker ps

# 查看所有容器

docker ps -a

# 删除容器

docker rm 容器ID或者容器名称

# 导出整个数据库(包括数据库中的数据)

mysqldump -u username -p 数据库 > 数据库.sql

# 导出数据库结构(不含数据)

mysqldump -u username -p -d 数据库 > 数据库.sql

# 导出数据库中的某张数据表(包含数据)

mysqldump -u username -p 数据库 表 >  表.sql

# 导出数据库中的某张数据表的表结构(不含数据)

mysqldump -u username -p -d 数据库 表 >  表.sql

# 恢复数据

mysql -uroot -p 【数据库名称】 < 【sql文件】

# docker 中的文件拷贝 (docker容器中的文件copy到本地文件) 

 docker cp 【容器ID】:【容器目录】【目标目录】

# 传文件进docker指定路径

# 执行下面命令上传文件到容器中的镜像的指定位置

docker cp /本地路径/文件名 容器ID or name:/上传路径

# 从docker传文件到实体机

同理,如果我们需要将docker中的文件传输到实体机上,我们只需要将之前的cp命令方向反过来

docker cp 容器ID:/上传路径 /路径/文件名文章来源地址https://www.toymoban.com/news/detail-442165.html

到了这里,关于基于docker容器部署MySQL数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在Linux用Docker部署MySQL数据库并远程访问本地数据库

    本文主要介绍如何使用Docker部署MySQL,并结合cpolar内网穿透工具实现远程访问本地数据库。 Docker提供了一个轻量级的容器化解决方案,可以更好的简化数据库的部署过程。让创建和管理MySQL数据库变得更简单快捷。下面就来分享一下具体的部署过程,并提出一些需要注意的事

    2024年03月10日
    浏览(41)
  • 基于docker搭建MySql主从数据库(详细步骤)

    在 Linux 中建立对应文件夹,用于存放MySql数据库相关,文件夹路径: /usr/local/software/mysql 。 在mysql文件下创建如下目录结构的文件:(3306为主数据库文件夹,笔者这里以对端口号来命名;3310为从数据库文件夹,3311同理,可依次往下) 上传 my.cnf 文件到 conf 文件夹下 以下是

    2024年02月09日
    浏览(54)
  • 【微服务部署】九、使用Docker Compose搭建高可用双机热备MySQL数据库

      通常,一般业务我们使用云服务器提供的数据库,无论是MySQL数据库还是其他数据库,云服务厂商都提供了主备功能,我们不需要自己配置处理。而如果需要我们自己搭建数据库,那么考虑到数据的高可用性、故障恢复和扩展性,必须做数据备份配置。 一、MySQL 的多种数

    2024年02月07日
    浏览(47)
  • Docker的使用教程、学习笔记,附实战:部署chatgpt网页版ui,部署mysql8数据库

    作者:ChenZhen 博客地址:https://www.chenzhen.space/ 版权:来自b站视频 【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 因为黑马的课件ppt做的实在是太好了,基本就是原样copy过来整理一下。 如果对你有帮助,请给一个小小的

    2024年02月04日
    浏览(62)
  • Docker跨容器访问数据库

    有两个docker镜像:mysql镜像和ubuntu镜像。项目的数据库和代码分别打包在mysql镜像和ubuntu镜像中。项目代码需要跨容器访问数据库。 使用docker --link参数实现容器互联 1.装载mysql镜像 查看已装载镜像列表:  2.以mysql8镜像创建容器 参数释义: --name mysql 命名创建的容器为mysql -

    2024年02月06日
    浏览(42)
  • 瀚高数据库 docker 容器单机运行(安全版v4.5.9)

    瀚高数据库 docker 容器单机运行 鉴于有些高端客户需要容器运行瀚高数据库,本文主要针对这些用户说明一下瀚高数据库镜像的操作。 文档所使用的docker版本是 18.03.0 。 已拿到docker镜像包 459.tar ,如有需要可以拨打热线电话 400-708-8006 。 注意: 容器内已经初始化好数据库实

    2024年01月16日
    浏览(61)
  • Linux系统时间 vs Docker容器时间 vs 数据库时间

    前两天写了个小demo,部署到腾讯云上,今天测了一下插入数据的接口,发现插入后的数据时间不对。由于我的mysql是装在docker里的,因此有必要将linux系统时间,docker容器时间,以及mysql时间这三者统一起来。 首先确认linux系统时间是否与当前时间一致,登录服务器后直接用

    2024年02月09日
    浏览(71)
  • 往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)

    cloudbeaver默认没有开放impala连接,更不会支持国产数据库了 docker安装运行cloudbeaver可以参考文章:docker安装运行CloudBeaver并设置默认语言为中文 本文跳过cloudbeaver镜像拉取,直接就开始实现自定义数据库连接功能 1.1、新建挂载的宿主机根目录 挂载的文件都放置该目录下 1.2、运

    2024年01月19日
    浏览(83)
  • Docker 部署 MongoDB 数据库

    https://www.mongodb.com/zh-cn 缩主机上创建 mongo/configdb/mongod.conf https://hub.docker.com/_/mongo 指定服务执行器与缓存大小 https://hub.docker.com/_/mongo-express 查看默认登录账号密码 注意: 默认登录账号密码是 admin/pass ,docker配置中已经将登录账号密码设置为 admin/123456 http://localhost:8081/ http:/

    2024年04月27日
    浏览(36)
  • 使用docker部署postgreSQL数据库

    随着docker的广泛应用,为了提供便利的管理,PostgreSQL数据库也支持docker的安装方式。下面详细介绍docker安装PostgreSQL数据库的方法。 1、查看下载数据库镜像命令 访问dockerhub官网:https://registry.hub.docker.com/ 地址,下载指定版本的postgresql数据库。 2、执行下载命令 在安装有doc

    2024年02月11日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包