Docker部署Mysql数据库详解

打印 上一主题 下一主题

主题 825|帖子 825|积分 2475

目次
 
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版本的容器:
  1. 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

  1. docker exec -it mysql-container mysql -u root -p
复制代码
此命令将打开MySQL的命令行客户端,并要求您输入MySQL root用户的暗码如下图:

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

为了在容器重新启动后保留MySQL数据,可以将数据目次映射到宿主机的目次。在创建容器时,可以添加以下参数:
  1. -v /docker/mysql/config/my.cnf:/etc/my.cnf #宿主机目录:mysql容器目录
  2. -v /docker/mysql/data:/var/lib/mysql
复制代码
这里可以进行数据卷挂载,卷就是目次或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性,卷的设计目标就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。数据卷可在容器之间共享或重用数据并且卷中的更改可以直接实时生效,数据卷的生命周期不停持续到没有容器使用它为止。如下图:

 

 1.2 远程登录Mysql

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

 这是什么缘故原由呢?
出现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加密方式

运行下面的命令:
  1. mysql -u root -p  #登陆mysql
  2. use mysql;        # 切换mysql数据库
  3. select host, user, authentication_string, plugin from user; #查看root用户登录加密方式
复制代码
如下图:

 然后我们改变加密命令
  1. alter user 'root'@'%' identified with mysql_native_password by '123456';
复制代码
 然后再次检察root用户登录的加密方式
  1. select host, user, authentication_string, plugin from user; #查看root用户登录加密方式
复制代码

 


 然后我们重新使用客户端登录系统表现登录成功。
1.2.2 在容器启动时配置加密方式为mysql_native_password

代码-e identified=mysql_native_password,配置了加密方式。
  1. 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容器后,然后进行创建数据库,创建表格然后添加数据如下:
  1. CREATE DATABASE /*!32312 IF NOT EXISTS*/`project` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
  2. USE `project`;
  3. /*Table structure for table `user` */
  4. DROP TABLE IF EXISTS `user`;
  5. CREATE TABLE `user` (
  6.   `id` BIGINT NOT NULL AUTO_INCREMENT,
  7.   `username` VARCHAR(20) DEFAULT NULL,
  8.   `password` VARCHAR(20) DEFAULT NULL,
  9.   PRIMARY KEY (`id`)
  10. ) ENGINE=INNODB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  11. /*Data for the table `user` */
  12. INSERT  INTO `user`(`id`,`username`,`password`) VALUES (1,'张三','123'),(2,'lisi','456');
复制代码
然后在我们的docker容器内查询mysql数据如下图:

 然后我们发现了乱码标题,乱码一般都是由于编码引起的,以是我们来查一下数据库的编码

 1.3.2 Mysql编码标题解决办法

1.修改my.cnf文件
  1. cd /etc/mysql/ #进入my.cnf文件中的目录
  2. vim my.cnf #编辑my.cnf文件
复制代码
2.出现bash: vim: command not found提示,必要安装一下vim,使用如下命令
  1. apt-get update
  2. apt-get install vim -y
复制代码
重新实行vim命令。
3. 在 my.cnf文件中[mysql] 下面添加  default-character-set=utf8mb4,然后 :wq 退出。没有 [mysql] 的话就写一个。
如下图:

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

 检察表格数据

 至此我们的标题得到了成功解决。
 
送书活动

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多万册。


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

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

  
  即可参与送书活动!

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

  
 

 

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表