Docker安装Mysql数据库

1. 前言

XXXXX

2. Docker中安装MySQL服务

以下以mysql8.2版本为例,mysql5.7的步骤也是一样的

2.1. 查看可用的MySQL版本

# 搜索镜像
docker search mysql

2.2. 拉取MySQL镜像

# 拉取镜像
docker pull mysql# 或者
docker pull mysql:latest

2.3. 查看本地镜像

使用以下命令来查看是否已安装了 mysql镜像

docker images

2.4. 运行容器

MySQL是常用的关系型数据库,一般的,希望它能永久的保存数据,哪怕是当容器被删除了数据也不要删除,此时就需要把主机文件夹挂载到容器上,这样可以保证即使容器删除后新建的MySQL容器可以使用之前的数据。

  • 先准备好本地的目录
mkdir -p /usr/local/mysql/log
mkdir -p /usr/local/mysql/data
mkdir -p /usr/local/mysql/conf
  • 挂载目录,启动容器
# Docker启动MySQL容器
docker run -p 3306:3306 --name mysql \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql

-p 3306:3306:指定宿主机端口与容器端口映射关系

-v:挂载主机文件夹 /usr/local/mysql/data 到 容器/var/lib/mysql 挂载点

-e:指定容器需要的变量

-it:表示交互式终端;

-d:后台运行mysql容器

注意:-v /usr/local/mysql/conf:/etc/mysql.d \ 这里对应的是mysql.d很多人都写成了conf,导致容器启动失败

2.5. 查看正在运行的容器

# 查看正在运行的容器
docker ps
# 查看所有的docker容器
docker ps -a

这个时候如果显示的是up状态,那就是启动成功了。如果是restarting,说明是有问题的。我们可以查看日志:

docker logs -f mysql

2.6. 查看容器内部

docker exec -it mysql /bin/bash

2.7. 授权root远程登录

  • 进入容器
docker exec -it mysql /bin/bash
  • 登录mysql
mysql -uroot -p
  • 查看用户、插件
mysql> use mysql;
Database changed
mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)
mysql> 

查看结果,root@‘localhost’也看到了root@’%‘root@’%‘`。已经有了远程登录root@’%',所以可以直接进行远程连接。

  • 直接退出吧

2.8. 在宿主机连接到容器的MySQL

# 用命令行测试端口连通性
[root@bogon ~]# nc -nv 127.0.0.1 3306
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 127.0.0.1:3306.
I
8.2.0
# 查看能不能连接上MySQL
mysql -u root -P 3306 -h 127.0.0.1 -proot
# 查看容器日志
docker logs -f mysql

2.9. 用Navicat连接容器的MySQL

  • 配置连接的参数

image.png

  • 连接上了

image.png

3. 授权root远程登录

  • 进入mysql容器
docker exec -it mysql /bin/bash
  • 登录mysql
mysql -uroot -p
mysql> use mysql
Database changed
mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)mysql>

可以看到出厂就创建了root@'%'账号。如果没有就自行创建下把

  • 创建root@'%'账号
mysql> create user root@'%' identified by 'root';
Query OK, 0 rows affected (0.01 sec)mysql>
  • 授权所有权限给root@'%'账号
mysql> grant all on *.* to root@'%';
Query OK, 0 rows affected (0.00 sec)mysql> 

3.1. 取消密码强度限制

  • 卸载"验证密码"组件
mysql> UNINSTALL COMPONENT 'file://component_validate_password';
ERROR 3537 (HY000): Component specified by URN 'file://component_validate_password' to unload has not been loaded before.
mysql>

docker的mysql镜像默认没有安装

  • 卸载"验证密码"插件
mysql> UNINSTALL PLUGIN validate_password;
ERROR 1305 (42000): PLUGIN validate_password does not exist
mysql> 

docker的mysql镜像默认没有安装

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

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

相关文章

浅谈linux缓冲区的认识!

今天来为大家分享一波关于缓冲区的知识!那么既然我们要谈缓冲区,那么就得从是什么?为什么?有什么作用这几个方面来谈论一下缓冲区!然后再通过一些代码来更加深刻的理解缓冲区的知识! 引言: 是…

Navicat 技术指引 | 适用于 GaussDB 分布式的日志查询与配置设置

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结…

文献计量学方法与应用、主题确定、检索与数据采集、VOSviewer可视化绘图、Citespace可视化绘图、R语言文献计量学绘图分析

目录 一、文献计量学方法与应用简介 二、主题确定、检索与数据采集 三、VOSviewer可视化绘图 四、Citespace可视化绘图 五、R语言文献计量学绘图分析 六、论文写作 七、论文投稿 更多应用 文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉…

AWS攻略——使用中转网关(Transit Gateway)连接不同区域(Region)VPC

文章目录 Peering方案Transit Gateway方案环境准备创建Transit Gateway Peering Connection接受邀请修改中转网关路由修改被邀请方中转网关路由修改邀请方中转网关路由 测试修改Public子网路由 知识点参考资料 区别于 《AWS攻略——使用中转网关(Transit Gateway)连接同区域(R…

C++_函数重载

前言: 函数重载的意思就是可以有多个同名函数存在,但是这些同名函数的参数列表有着不同情形,以便区分。在C中,支持在同一作用域下可以声明、定义多个同名函数,但是这些函数的形参类型,类型顺序以及参数个数…

AI大规模专题报告:大规模语言模型从理论到实践

今天分享的AI系列深度研究报告:《AI大规模专题报告:大规模语言模型从理论到实践》。 (报告出品方:光大证券) 报告共计:25页 大规模语言模型基本概念 语言是人类与其他动物最重要的区别,而人类…

深入理解 Promise:前端异步编程的核心概念

深入理解 Promise:前端异步编程的核心概念 本文将帮助您深入理解 Promise,这是前端异步编程的核心概念。通过详细介绍 Promise 的工作原理、常见用法和实际示例,您将学会如何优雅地处理异步操作,并解决回调地狱问题。 异步编程和…

Linux的硬盘管理

本章主要介绍Linux磁盘管理 了解分区的概念对硬盘进行分区swap分区的管理 新的硬盘首先需要对其进行分区和格式化,下面来了解一下硬盘的结构,如图 硬盘的磁盘上有一个个圈,每两个圈组成一个磁道。从中间往外发射线,把每个磁道分…

springboot3远程调用

RPC 两个服务器之间的调用 远程请求 内部服务之间的调用 可以通过 cloud 注册中心 openfeign等 外部服务的调用 http请求 外部协议 api:远程接口 sdk:本地调用 调用阿里云的天气请求

深度学习|词嵌入的演变

文本嵌入,也称为词嵌入,是文本数据的高维、密集向量表示,可以测量不同文本之间的语义和句法相似性。它们通常是通过在大量文本数据上训练 Word2Vec、GloVe 或 BERT 等机器学习模型来创建的。这些模型能够捕获单词和短语之间的复杂关系&#x…

【开源】基于Vue+SpringBoot的陕西非物质文化遗产网站

文末获取源码,项目编号: S 065 。 \color{red}{文末获取源码,项目编号:S065。} 文末获取源码,项目编号:S065。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 设计目标2.2 研究内容2.3 研究方法与…

案例064:基于微信小程序的考研论坛设计

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

正则表达式(7):转义符

正则表达式(7):正则表达式(5):转义符 本博文转载自 此处,我们来认识一个常用符号,它就是反斜杠 “\” 反斜杠有什么作用呢?先不着急解释,先来看个小例子。 …

CGAL的3D简单网格数据结构

由具有多个曲面面片的多面体曲面生成的多域四面体网格。将显示完整的三角剖分,包括属于或不属于网格复合体、曲面面片和特征边的单元。 1、网格复合体、 此软件包致力于三维单纯形网格数据结构的表示。 一个3D单纯形复杂体由点、线段、三角形、四面体及其相应的组合…

从零开始搭建链上dex自动化价差套利程序(13)

优化 优化触发条件: 之前的触发条件有问题,导致迟迟不能触发,优化后触发条件如下: dydx_take 0.0002apex_make 0.0005​float(b_first_price_apex)-float(s_first_price_dydx) > float(b_first_price_apex)*apex_makefloat…

华为数通---配置Smart Link主备备份示例

定义 Smart Link,又叫做备份链路。一个Smart Link由两个接口组成,其中一个接口作为另一个的备份。Smart Link常用于双上行组网,提供可靠高效的备份和快速的切换机制。 目的 下游设备连接到上游设备,当使用单上行方式时&…

Microsoft 365 Copilot正式上线,如何稳定访问体验?

如果将微软对人工智能的投资看成一场豪赌,Microsoft Copilot无疑是现阶段最受瞩目的赌注。2023年9月正式发布的Microsoft Copilot是一种基于大型语言模型(LLM)和微软图形(Microsoft Graph)的数据和人工智能&#xff08…

贝锐花生壳3大安全能力,保障网络服务安全远程连接

在没有公网IP的情况下,使用内网穿透工具,将本地局域网服务映射至外网,虽然高效快捷,但信息安全也是不可忽略的方面。 对此,贝锐花生壳提供了多维度的安全防护能力,满足不同场景下用户安全远程访问内网服务的…

阿里巴巴通义实验室周畅:让大模型率先在PC上“跑起来”

12月7日,以“AI新生态 智启新元年”为主题的首届AI PC产业创新论坛在北京联想集团总部举办。阿里巴巴-通义实验室、通义千问大模型负责人周畅受邀出席分享关于端侧大模型的技术进展,以及终端设备与AI结合的发展前景。 周畅表示,大模型技术的…

Python django-xadmin:构建强大的 Django 后台管理系统

概要 Django作为一款强大的Web框架,其后台管理系统提供了便捷的数据管理和操作方式。而 django-xadmin 则为Django的后台管理系统提供了更加强大的功能和灵活的定制选项。在本文中,我们将深入研究如何使用django-xadmin,并通过详细的示例代码…