2.1Docker安装MySQL8.0

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.mzph.cn/bicheng/20233.shtml

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

相关文章

CentOs-7.5 root密码忘记了,如何重置密码?

VWmare软件版本:VMware Workstation 16 Pro Centos系统版本:CentOS-7.5-x86 64-Minimal-1804 文章目录 问题描述如何解决? 问题描述 长时间没有使用Linux系统,root用户密码忘记了,登陆不上系统,如下图所示…

FreeRTOS基础(三):动态创建任务

上一篇博客,我们讲解了FreeRTOS中,我们讲解了创建任务和删除任务的API函数,那么这一讲,我们从实战出发,规范我们在FreeRTOS下的编码风格,掌握动态创建任务的编码风格,达到实战应用! …

用贪心算法进行10进制整数转化为2进制数

十进制整数转二进制数用什么方法?网上一搜,大部分答案都是用短除法,也就是除2反向取余法。这种方法是最基本最常用的,但是计算步骤多,还容易出错,那么还有没有其他更好的方法吗? 一、短除反向取…

AdroitFisherman模块安装日志(2024/5/31)

安装指令 pip install AdroitFisherman-0.0.29.tar.gz -v 安装条件 1:Microsoft Visual Studio Build Tools 2:python 3.10.x 显示输出 Using pip 24.0 from C:\Users\12952\AppData\Local\Programs\Python\Python310\lib\site-packages\pip (python 3.10) Processing c:\u…

matlab GUI界面设计

【实验内容】 用MATLAB的GUI程序设计一个具备图像边缘检测功能的用户界面,该设计程序有以下基本功能: (1)图像的读取和保存。 (2)设计图形用户界面,让用户对图像进行彩色图像到灰度图像的转换…

2.1 OpenCV随手简记(二)

为后续项目学习做准备,我们需要了解LinuxOpenCV、Mediapipe、ROS、QT等知识。 一、图像显示与保存 1、基本原理 1.1 图像像素存储形式 首先得了解下图像在计算机中存储形式:(为了方便画图,每列像素值都写一样了)。对于只有黑白颜色的灰度…

[有监督学习]2.详细图解正则化

正则化 正则化是防止过拟合的一种方法,与线性回归等算法配合使用。通过向损失函数增加惩罚项的方式对模型施加制约,有望提高模型的泛化能力。 概述 正则化是防止过拟合的方法,用于机器学习模型的训练阶段。过拟合是模型在验证数据上产生的误…

Java文件IO

White graces:个人主页 🙉专栏推荐:Java入门知识🙉 🙉 内容推荐:JUC常见类🙉 🐹今日诗词:东风吹柳日初长,雨馀芳草斜阳🐹 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主&…

Three.js 研究:4、创建设备底部旋转的科技感圆环

1、实现效果 2、PNG转SVG 2.1、原始物料 使用网站工具https://convertio.co/zh/png-svg/进行PNG转SVG 3、导入SVG至Blender 4、制作旋转动画 4.1、给圆环着色 4.2、修改圆环中心位置 4.3、让圆环旋转起来 参考一下文章 Three.js 研究:1、如何让物体动起来 Thre…

“论SOA在企业集成架构设计中的应用”必过模板,突击2024软考高项论文

考题部分 企业应用集成(Enterprise Application Integration, EAI)是每个企业都必须要面对的实际问题。面向服务的企业应用集成是一种基于面向服务体系结构(Service-OrientedArchitecture,SOA)的新型企业应用集成技术,强调将企业和组织内部的资源和业务功…

VSCode界面Outline只显示类名和函数名,隐藏变量名

参考链接 https://blog.csdn.net/Zjhao666/article/details/120523879https://blog.csdn.net/Williamcsj/article/details/122401996 VSCode中界面左下角的Outline能够方便快速跳转到文件的某个类或函数,但默认同时显示变量,导致找某个函数时很不方便。…

mimkatz获取windows10明文密码

目录 mimkatz获取windows10明文密码原理 lsass.exe进程的作用 mimikatz的工作机制 Windows 10的特殊情况 实验 实验环境 实验工具 实验步骤 首先根据版本选择相应的mimikatz 使用管理员身份运行cmd 修改注册表 ​编辑 重启 重启电脑后打开mimikatz 在cmd切换到mi…

Seq2Seq模型:详述其发展历程、深远影响与结构深度剖析

Seq2Seq(Sequence-to-Sequence)模型是一种深度学习架构,专为处理从一个输入序列到一个输出序列的映射任务设计。这种模型最初应用于机器翻译任务,但因其灵活性和有效性,现已被广泛应用于自然语言处理(NLP&a…

医院该如何应对网络安全?

在线医生咨询受到很多人的关注,互联网医疗行业的未来发展空间巨大,但随着医院信息化建设高速发展 医院积累了大量的患者基本信息、化验结果、电子处方、生产数据和运营信息等数据 这些数据涉及公民隐私、医院运作和发展等多因素,医疗行业办…

【QEMU中文文档】1.关于QEMU

本文由 AI 翻译(ChatGPT-4)完成,并由作者进行人工校对。如有任何问题或建议,欢迎联系我。联系方式:jelin-shoutlook.com。 QEMU 是一款通用的开源机器仿真器和虚拟化器。 QEMU 可以通过几种不同的方式使用。最常见的用…

OrangePi AIpro--新手上路

目录 一、SSH登录二、安装VNC Sevice(经测试Xrdp远程桌面安装不上)2.1安装xface桌面2.2 配置vnc服务2.2.1 设置vnc server6-8位的密码2.2.2 创建vnc文件夹,写入xstartup文件2.2.3 给xstartup文件提高权限2.2.4 在安装产生的vnc文件夹创建xsta…

【Uniapp小程序】自定义导航栏uni-nav-bar滚动渐变色

效果图 新建activityScrollTop.js作为mixins export default {data() {return {navBgColor: "rgba(0,0,0,0)", // 初始背景颜色为完全透明navTextColor: "rgba(0,0,0,1)", // 初始文字颜色};},onPageScroll(e) {// 设置背景const newAlpha Math.min((e.s…

PPP认证两种:PAP和CHAP,两次握手和三次握手

CHAP(Challenge-Handshake Authentication Protocol,质询握手认证协议)的设计理念是增强网络认证过程的安全性。在CHAP的三次握手过程中,不直接传送用户的明文密码,以此来提高安全性,具体步骤如下&#xff…

springboot结合mybatis使用多数据源的方式

背景 最近有一个需求,有两个库需要做同步数据,一个Doris库,一个mysql库,两边的表结构一致,这里不能使用navicat等工具提供的数据传输之类的功能,只能使用代码做同步,springboot配置多数据…

如何设置手机的DNS

DNS 服务器 IP 地址 苹果 华为 小米 OPPO VIVO DNS 服务器 IP 地址 中国大陆部分地区会被运营商屏蔽网络导致无法访问,可修改手机DNS解决。 推荐 阿里的DNS (223.5.5.5)或 114 (114.114.114.114和114.114.115.115) 更多公开DNS参考: 苹果…