2.1Docker安装MySQL8.0

news2024/11/17 17:29:28

2.1 Docker安装MySQL8.0

1.拉取MySQL
docker pull mysql:latest

如:拉取MySQL8.0.33版本

docker pull mysql:8.0.33

image-20240327120200005

2. 启动镜像
docker run -p 3307:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=Hgh75667% -d mysql:8.0.33
  • -p 3307:3306 把mysql默认的3306端口映射到了3307
  • –name mysql8 docker启动的容器名称是mysql8
  • -e MYSQL_ROOT_PASSWORD=Hgh75667% 设置了密码是Hgh75667%

检查是否成功

docker ps

image-20240327120123270

3. 配置挂载

创建挂载目录

mkdir -p /docker/mysql8.0.33/

检查保证创建成功

cd /docker/mysql8.0.33/
pwd

image-20240327120431288

拷贝配置文件到创建的目录下

docker cp  mysql8:/etc/mysql /docker/mysql8.0.33/
  • mysql8:/etc/mysql Docker容器中MySQL路径
  • /docker/mysql8.0.33/ 新建的文件路径

image-20240327121525380

4.删除原有容器
docker stop mysql8
docker rm -f mysql8

image-20240327121642805

5. 启动mysql挂载配置文件,数据持久化到宿主主机
新增my.cnf 进入到上面挂载目录下、因为已经做了cp复制。所以可以到copy目录下新增
cd /docker/mysql8.0.33/mysql/conf.d
vim my.cnf

粘贴内容:

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
 
[client]
default-character-set=utf8
 
[mysql]
进入cd /docker/目录,创建一个sh脚本、把docker启动mysql的命令放到脚本里面。因为后续如果想找到当时启动mysql时候所设置的一些参数和信息、可以查看这个脚本里面是怎么写的。
cd /docker/
vim docker_insert_mysql8.0.33.sh

内容:

#!/bin/sh
docker run \
-p 3307:3306 \
--name mysql8 \
--privileged=true \
--restart unless-stopped \
-v /docker/mysql8.0.33/mysql:/etc/mysql \
-v /docker/mysql8.0.33/logs:/logs \
-v /docker/mysql8.0.33/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=Hgh75667% \
-d mysql:8.0.33

解释

-p 端口映射 【这里有个特殊的地方是把3306映射给了3307、后续链接数据库的时候用3307链接不用3306】

–name mysql8 名称是mysql8

–privileged=true 挂载文件权限设置

–restart unless-stopped 设置 开机后自动重启容器

-v /docker/mysql8.0.20/mysql:/etc/mysql \ 挂载配置文件【路径是上面创建的挂载路径】

-v /docker/mysql8.0.20/logs:/logs \ 挂载日志【路径是上面创建的挂载路径】

-v /docker/mysql8.0.20/data:/var/lib/mysql \ 挂载数据文件 持久化到主机【路径是上面创建的挂载路径】

-v /etc/localtime:/etc/localtime 容器时间与宿主机同步

-e MYSQL_ROOT_PASSWORD=Hgh75667 设置密码

-d mysql:8.0.33 后台启动,mysql

执行docker_insert_mysql8.0.33.sh文件
sh docker_insert_mysql8.0.33.sh

检查是否启动成功

docker ps 

image-20240327142706453

6. 配置链接信息(远程访问配置)

这里已经成功启动了、但是连接还需要在配置之后才可以链接。

进入mysql8 容器

docker exec -it mysql8 bash

在容器内登录mysql

 mysql -u root -p
  • -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root

  • -p,表示使用密码登陆

执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库,

如果出现异常:(初始密码不成功,密码默认为空,直接Enter)保证进入到mysql命令行。

image-20240327143044674

设置权限(为root分配权限,以便可以远程连接)

grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
use mysql;
update user set host='%' where user='root';
select host,user from user where user = 'root';
show databases;

需要保证user表中更新了user为root,Host为%的用户

image-20240327143516794

由于Mysql5.6以上的版本修改了Password算法,这里可以更新密码算法,便于使用Navicat连接。

授予权限

grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;

允许root远程登录,并设置远程登录密码

默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

请注意,允许root远程登录会带来安全风险

ALTER user 'root'@'%' IDENTIFIED BY 'Hgh75667%' PASSWORD EXPIRE NEVER;
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Hgh75667%';
FLUSH PRIVILEGES;

参考:https://blog.csdn.net/a1150499208/article/details/131437199?

7.Navicat链接数据库

服务器端口开放

云服务器ECS -> 安全组 ->管理规则 -> 添加安全组

image-20240327153629303

连接成功
image-20240327154106026

云服务器ECS -> 安全组 ->管理规则 -> 添加安全组

[外链图片转存中…(img-VGGsV4Cx-1717081761454)]

连接成功
image-20240327154106026

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1721043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字符串-至多包含K种字符的子串中最长子串(mid)

一、题目描述 二、解题思路 借鉴以下题目思想,使用双指针,外层循环右侧指针移动,内存循环左侧指针移动 字符串-最长不含重复字符的子字符串(mid)-CSDN博客文章浏览阅读622次,点赞17次,收藏4次。java刷题:…

芯盾时代API安全监测平台

面对难搞的API安全,芯盾时代作为领先的零信任业务安全产品方案提供商,给出了自己的答案——以AI技术赋能API安全,打造API安全监测平台,帮助企业建立资产摸得清、漏洞看得透、攻击测得出、数据拦得住的API风险监测体系,…

通过LabVIEW提升生产设备自动化水平

现代制造业对生产设备的自动化水平提出了越来越高的要求。使用LabVIEW这一强大的图形化编程环境,可以显著提升生产设备的自动化程度,改善生产效率和产品质量。本文将详细分析如何通过LabVIEW改善生产设备的自动化水平,并提供具体的实施策略与…

c++函数基础总结

在给出的代码片段中,我们看到两部分内容:一个类定义和一个全局函数声明。让我们逐一分析它们: 类定义: cpp复制代码 class { public: void a(); }; 这个类定义是不完整的,因为它没有类名。但为了说明,我…

【SQL学习进阶】从入门到高级应用【三范式】

文章目录 什么是数据库设计三范式三范式一对多怎么设计多对多怎么设计一对一怎么设计最终的设计 🌈你好呀!我是 山顶风景独好 💕欢迎来到我的博客,很高兴能够在这里和您见面! 💕希望您在这里可以感受到一份…

【SpringBoot】SpringBoot整合JWT

目录 先说token单点登录(SSO)简介原理单点登录的优势单点登录流程分布式单点登录方式方式一:session广播机制实现方式二:使用cookieredis实现。方式三:token认证 JWT数字签名JWT的作用JWT和传统Session1、无状态&#…

精雕细琢,B 端 UI 设计展典雅风范

精雕细琢,B 端 UI 设计展典雅风范

virtualbox中ubuntu22.04网络配置

第一:添加两个网卡,网卡1是NAT方式,网卡2是仅主机模式(两个顺序不能颠倒) 第二步:启动ifconfig查看网络

LabVIEW车体静强度试验台测控系统

LabVIEW车体静强度试验台测控系统 开发了一种基于LabVIEW的车体静强度试验台测控系统,通过自动化技术提高试验的精度和效率。系统采用LabVIEW软件与S7-200 SMART PLC硬件平台相结合,实现了对液压缸作用力的精确控制和试验数据的实时采集及管理。 传统的…

11.1 排序算法

目录 11.1 排序算法 11.1.1 评价维度 11.1.2 理想排序算法 11.1 排序算法 排序算法(sorting algorithm)用于对一组数据按照特定顺序进行排列。排序算法有着广泛的应用,因为有序数据通常能够被更高效地查找、分析和处理。 如图 1…

MySQL事务与MVCC

文章目录 事务和事务的隔离级别1.为什么需要事务2.事务特性1_原子性(atomicity)2_一致性(consistency)3_持久性(durability)4_隔离性(isolation) 3.事务并发引发的问题1_脏读2_不可重…

香橙派 AI pro:AI 加速初体验

香橙派 AI pro:AI 加速初体验 在AI领域,不断涌现的硬件产品为开发者提供了前所未有的便利和可能性。今天,我要介绍的这款产品——香橙派 AIpro,就是其中的佼佼者。在昇腾 AI 芯片的加持下,这款开发板有着出色的算力。…

【WEEK14】 【DAY3】Swagger第一部分【中文版】

2024.5.29 Wednesday 目录 16.Swagger16.1.Swagger简介16.1.1.前后端分离16.1.2.前后端分离时代16.1.3.产生的问题16.1.4.解决方案16.1.5.Swagger 16.2.SpringBoot集成Swagger16.2.1.新建swagger-demo项目16.2.2.导入依赖16.2.2.1.springfox-swagger216.2.2.2.springfox-swagge…

CTFHUB-信息泄露-备份文件下载

目录 网站源码 bak文件 vim缓存 .DS_Store 当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。 需要用到的工具: dirsearch (目录扫描工具在python3环境下) 网站源码 可以利用bur…

串口屏变量图标显示电量

1、首先制作好电量的图标图片,如下图: 2、然后可以使用美图秀秀逐个修改图片的像素为一致,比如像素为55*32,修改后如下 3、然后打开DGUS_V7.647软件,点击ICL生成工具 4、导入图片,点击生成ICL,如…

2024年中国CRM行业发展方向和前景 | 《连接型CRM》文章精选

01、创新突破,技术为本 中国经济发展处于增速换挡期,企业数字化需求旺盛,同时云计算、大数据、物联网、区块链、5G等新技术的发展,为CRM系统的应用与发展提供了更多的机遇和可能。 近些年来,技术的发展对CRM的重要性…

LabVIEW远程开发与调试

在现代项目开发中,远程开发与调试已经成为一种常见的模式,特别是在使用LabVIEW进行工程项目时。本文将详细分析LabVIEW远程开发与调试的优缺点,并从多个角度说明如何建议客户采用这种方式,以提高项目效率和质量。 优点 灵活性和便…

【UnityShader入门精要学习笔记】第十六章 Unity中的渲染优化技术 (上)

本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更,有始无终 我的GitHub仓库 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 移动平台上…

Webrtc支持HEVC之FFMPEG支持HEVC编解码(一)

一、前言 Webrtc使用的FFMPEG(webrtc\src\third_party\ffmpeg)和官方的不太一样,使用GN编译,各个平台使用了不一样的配置文件 以Windows为例,Chrome浏览器也类似 二、修改配置文件 windows:chromium\config\Chrome\win\x64 其他平台: chromium\config\Chrome\YOUR_SYS…

“仿RabbitMQ实现消息队列”---整体架构与模块说明

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、概念性框架理解 我们主要实现的内容: 1.Broker服务器:消息队列服务器(服务端&…