Docker部署Mysql数据库详解

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

目录

 文章来源地址https://www.toymoban.com/news/detail-543183.html

1. Docker部署Mysql

1.1 Mysql容器

1.1.1 创建Mysql容器

1.1.2 进入Mysql容器并登录Mysql

1.1.3 持久化数据

 1.2 远程登录Mysql

1.2.1 修改root加密方式

1.2.2 在容器启动时配置加密方式为mysql_native_password

 1.3 Mysql编码

1.3.1 Mysql编码问题

 1.3.2 Mysql编码问题解决办法

送书活动


 

Docker是一种流行的容器化平台,可以简化应用程序的部署和管理。在本博客中,我们将探讨如何使用Docker部署两个广泛使用的数据库:MySQL。我们将提供详细的步骤和相应的命令,以帮助您轻松地在Docker容器中设置和运行这个数据库。

1. Docker部署Mysql

1.1 Mysql容器

1.1.1 创建Mysql容器

首先我们拉取mysql镜像,要在Docker中部署MySQL数据库,我们首先需要创建一个MySQL容器。可以使用以下命令创建一个MySQL 8..0.24版本的容器:

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=123456  -p 3307:3306 mysql:8.0.24

此命令会创建一个名为mysql-container的容器,将MySQL的root用户密码设置为123456,并将宿主机的3307端口映射到容器的3306端口。

1.1.2 进入Mysql容器并登录Mysql

docker exec -it mysql-container mysql -u root -p

此命令将打开MySQL的命令行客户端,并要求您输入MySQL root用户的密码如下图:

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql

 然后我们就可以在这里进行数据库操作。

1.1.3 持久化数据

为了在容器重新启动后保留MySQL数据,可以将数据目录映射到宿主机的目录。在创建容器时,可以添加以下参数:

-v /docker/mysql/config/my.cnf:/etc/my.cnf #宿主机目录:mysql容器目录
-v /docker/mysql/data:/var/lib/mysql 

这里可以进行数据卷挂载,卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性,卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。数据卷可在容器之间共享或重用数据并且卷中的更改可以直接实时生效,数据卷的生命周期一直持续到没有容器使用它为止。如下图:

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql
 

 1.2 远程登录Mysql

在Mysql 8.x版本当我们在云服务器上创建dockier容器后,尝试远程登录Docker容器内数据库的时候会遇见如下图问题:

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql

 这是什么原因呢?

出现1251的主要原因是由于mysql版本的问题,mysql8.0版本,与mysql8.0以下版本的加密方式不同,导致错误产生。

MySql 8.0.11 换了新的身份验证插件(caching_sha2_password),而原来的身份验证插件为(mysql_native_password)。​ 而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_sha2_password),因此报上面的错,所以我们将mysql用户使用的 登录密码加密规则还原成 mysql_native_password,即可登陆成功。

1.2.1 修改root加密方式

运行下面的命令:

mysql -u root -p  #登陆mysql
use mysql;	# 切换mysql数据库
select host, user, authentication_string, plugin from user; #查看root用户登录加密方式

如下图:

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql

 然后我们改变加密命令

alter user 'root'@'%' identified with mysql_native_password by '123456';

 然后再次查看root用户登录的加密方式

select host, user, authentication_string, plugin from user; #查看root用户登录加密方式

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql
 

 然后我们重新使用客户端登录系统显示登录成功。

1.2.2 在容器启动时配置加密方式为mysql_native_password

代码-e identified=mysql_native_password,配置了加密方式。

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=123456  -p 3307:3306 -e identified=mysql_native_password mysql:8.0.24

 

 1.3 Mysql编码

1.3.1 Mysql编码问题

当我们使用客户端连接成功我们的docker容器后,然后进行创建数据库,创建表格然后添加数据如下:

CREATE DATABASE /*!32312 IF NOT EXISTS*/`project` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;

USE `project`;

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` BIGINT NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(20) DEFAULT NULL,
  `password` VARCHAR(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

/*Data for the table `user` */

INSERT  INTO `user`(`id`,`username`,`password`) VALUES (1,'张三','123'),(2,'lisi','456');

然后在我们的docker容器内查询mysql数据如下图:

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql

 然后我们发现了乱码问题,乱码一般都是因为编码引起的,所以我们来查一下数据库的编码

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql

 1.3.2 Mysql编码问题解决办法

1.修改my.cnf文件

cd /etc/mysql/ #进入my.cnf文件中的目录
vim my.cnf #编辑my.cnf文件

2.出现bash: vim: command not found提示,需要安装一下vim,使用如下命令

apt-get update
apt-get install vim -y

重新执行vim命令。

3. 在 my.cnf文件中[mysql] 下面添加  default-character-set=utf8mb4,然后 :wq 退出。没有 [mysql] 的话就写一个。

如下图:

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql

 

然后看一下mysql的字符集,已经变成 utf8mb4 了,这样就可以解决中文乱码问题了。

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql

 查看表格数据

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql

 至此我们的问题得到了成功解决。

 

送书活动

Python自动化办公应用大全(ChatGPT版):从零开始教编程小白一键搞定烦琐工作(上下册)

本书简介:

本书全面系统地介绍了Python语言在常见办公场景中的自动化解决方案。全书分为5篇21章,内容包括Python语言基础知识,Python读写数据常见方法,用Python自动操作Excel,用Python自动操作Word 与 PPT,用Python自动操作文件和文件夹、邮件、PDF 文件、图片、视频,用Python进行数据可视化分析及进行网页交互,借助ChatGPT轻松进阶Python办公自动化。 

本书适合各层次的信息工作者,既可作为初学Python的入门指南,又可作为中、高级自动化办公用户的参考手册。书中大量的实例还适合读者直接在工作中借鉴。

 

本书特色:

 

★方式新颖 详细介绍了如何用 ChatGPT 来补充学习知识点,以及如何快速生成所需的代码,零基础人员学习编程的成本进一步降低。

内容丰富 以Excel数据处理与分析为重点,延展到 Word、PPT、邮件、图片、视频、音频、本地文件管理、网页交互等现代办公所需要处理的各种形式的数据。

★案例实用 用大量易借鉴的案例帮助用户学会在各个场景中使用自动化技术。

★作者权威 Excel Home团队策划,多位微软全球最有价值专家(MVP)通力打造,确保每个案例都实用,对编程小白友好。

让没有编程经验的普通办公人员也能驾驭 Python,实现多个场景的办公自动化,提升效率!

 

作者简介:

Excel Home是微软在线社区联盟成员,全球华语Excel资源网站,拥有大量原创技术文章、视频教程、加载宏及模板。Excel Home是一个学习氛围浓厚的技术交流社区,中国大陆及中国港台各行各业身怀绝技的Office高手都汇聚于此,目前已有三百多万办公人士选择成为它的注册会员。 Excel Home已精心编写并出版Office领域的图书60余种,截至2020年春节,图书销量累计达200多万册。

Docker部署Mysql数据库详解,Docker,数据库,docker,mysql

当当链接:《Python自动化办公应用大全(ChatGPT版):从零开始教编程小白一键搞定烦琐工作(上下册)》(Excel Home)【简介_书评_在线阅读】 - 当当图书

 关注博主、点赞、收藏、

评论区评论 “ 人生苦短,我爱python”

  即可参与送书活动!

                           开奖时间:2023-07-17 21:00:00                             

 

 

 

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

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

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

相关文章

  • 【Docker】Docker中安装MySQL数据库

    点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情) 虽然 docker 安装 mysql 不是一个很好的方案,但是为了个人使用方便,使用 docker 安装 mysql 还是没什么问题的。 且安装时把主机文件挂载到容器上,保证了 mysql 的持久化,对开

    2024年02月14日
    浏览(41)
  • docker中的mysql数据库备份

             1、查看容器 docker ps 2、进入容器 docker exec -it 容器id /bin/bash 3、备份数据 mysqldump 数据库名称 -uroot -p /root/**.sql 回车输入数据库密码: 4、退出容器 exit 5、把容器中的文件拷贝出来 docker cp 容器id:/root/**.sql /root/ 例如: mysqldump test_db -uroot -p /root/test_db_0110.sql 常见错

    2024年02月12日
    浏览(49)
  • Docker中安装MySQL数据库(实测)

    本案例重点介绍docker安装mysql过程,docker原理及基本案例不做阐述。 centos中安装docker注意点:docker要求centos系统的内核版本高于3.10 案例中使用centos7.x作为测试版本。 推荐使用官网搜索,因为信息阅读更加的方便 官网地址:Docker 【官网地址如下】 【在搜索框中输入mysql关键

    2024年02月10日
    浏览(43)
  • Docker 容器搭建mysql 集群(主从数据库)

    目录 1.背景         2.设备及软件版本 3.开始搭建(这里不介绍安装docker及mysql) 3.1创建主数据库容器(master) 3.2查看容器是否创建成功 3.3进入修改容器下的/etc/my.cnf文件 3.3.1先拷贝my.cnf到容器外修改完再覆盖容器原来的my.cnf文件 3.4重启mysql容器使配置文件生效 3.5查看是否

    2024年02月08日
    浏览(98)
  • Mysql Docker 容器重启后数据库数据丢失分析

    项目复用nacos的mysql数据库且msyql容器已存在,之前已新建好数据库并插入数据。本次需要更新数据库表结构和数据。重启myql导致数据库数据丢失。 另外,本次事故是昨天发生未及时记录,日志不够详细。 本次需要更新数据库表结构和数据,通过dbviewer操作失败报 异常,部分

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

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

    2024年02月09日
    浏览(50)
  • Docker Compose V2 安装常用数据库MySQL+Mongo

    书接上篇:Docker V24 及 Docker Compose V2 的安装及使用 本篇操作都在 centos8 虚拟机 devops01 中进行,并都归属网络:devopsnetwork 主要增加对容器中 数据文件,日志,配置,网络,时区,端口映射,密码 的配置,更贴合生产实际使用 目录 /app/mysql 中创建 compose.yml 并运行 指定 mysql

    2024年02月08日
    浏览(38)
  • docker安装mysql、clickhouse、oracle等各种数据库汇总

    1:docker 安装mongo数据库并使用 官网:https://www.mongodb.com/docs/manual/ mongo shell教程1:http://c.biancheng.net/mongodb2/connection.html 安装1 :https://www.zhihu.com/question/54602953/answer/3047452434?utm_id=0 安装2:https://www.duidaima.com/Group/Topic/ArchitecturedDesign/9182 使用驱动进行java开发:https://mongodb.github.

    2024年02月10日
    浏览(51)
  • 导出docker MySQL中的数据库写一个shell 脚本

    安装命令 mysqldump 编辑脚本内容 export_mysql.sh 执行以下命令给脚本添加执行权限:

    2024年02月21日
    浏览(46)
  • Docker容器MySQL数据库的备份与还原,以及每天定时自动备份.

    根据自己需要,我这个是Debian的5.7版本的镜像。 这个地方一定要注意: 有些版本的docker镜像里面移除了MySQL自带的工具。包括Mysqlbinlog,Mysqlcheck等。所以即使你开启了binlog,也是没有办法还原数据的,这里要注意一下镜像的选择。 mkdir三个文件夹,方便持久化。 /home/mysql/c

    2024年02月05日
    浏览(65)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包