⛳ Docker 安装 MySQL

🎍目录

  • ⛳ Docker 安装 MySQL
    • 🚜 一、搜索 `mysql` , 查看版本
    • 🎨 二、拉取`mysql`镜像
    • 👣 三、建立容器的挂载文件
    • 🧰 四、创建`mysql`配置文件,`my.conf`
    • 🏭 五、根据镜像产生容器
    • 🎁 六、远程连接
    • ⭐ 七、`mysql8.0`远程连接不上问题
      • 🔮 7.1、Navicat 测试连接
      • 🏓 7.2、如果出现错误,我们需要授予远程登录权限
      • 🏀 7.3、如果接着出现以下错误
      • ✨ 7.4、再次测试

⛳ Docker 安装 MySQL

image-20230821193128491

🚜 一、搜索 mysql , 查看版本

docker search mysql

image-20230822094634454

🎨 二、拉取mysql镜像

  • docker pull mysql:8.0
  • docker images

image-20230822094703415

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ZqrX1Ie-1692703936336)(https://gitee.com/galloping_pony/img-home/raw/master/image-20230822184632848.png)]

👣 三、建立容器的挂载文件

  • mkdir -p /mydata/mysql/conf
  • mkdir -p /mydata/mysql/data
  • mkdir -p /mydata/mysql/logs

image-20230822094606188

🧰 四、创建mysql配置文件,my.conf

touch /mydata/mysql/conf/my.cnf

my.cnf中添加如下配置:

#my.cnf添加自己的配置
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password 

🏭 五、根据镜像产生容器

docker run \
--restart=always \
--privileged=true \
-p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /mydata/mysql/conf/conf.d:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=1234 \
-d mysql:8.0

image-20230822190254172

参数说明:

  • --restart=always : 开机启动,这里不做设置;
  • --privileged=true : 提升容器内权限,使容器内的root真正拥有root权限,否则容器内root只是外部普通用户权限;
  • -p : 将主机的 3306 端口映射到容器中的 3306 端口(主机端口 :容器端口);
  • --name : 指定容器名;
  • -v : /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf 把主机当前文件my.cnf挂在到容器中的/etc/mysql/my.cnf文件,改mysql的配置只需要改动本机的my.cnf即可,其它同理;
  • -e : 设置环境,MYSQL_ROOT_PASSWORD=1234 初始化root密码为 1234。
  • -d : 后台运行的镜像,mysql:tag ,并返回容器的 ID 或 名称;

​ 在容器内默认不支持vim,如果要在docker容器内使用vim,哪个容器要用就需要各自安装vim(yum install vim)。所以对于所有涉及到数据和配置的,都不应该放在容器内部。应该用-v来挂载外部数据目录。

🎁 六、远程连接

使用Navicat客户端工具测试,连接成功:

image-20230822191643949

至此,Docker安装MySQL完成。

⭐ 七、mysql8.0远程连接不上问题

🔮 7.1、Navicat 测试连接

image-20230822191904852

🏓 7.2、如果出现错误,我们需要授予远程登录权限

  1. bash 进入容器:docker exec -it mysql bash

    1. image-20230821202502638

    2. 登录:mysql -uroot -p

    3. 找到mysql库中的user表:use myql;``select user,host from user;

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RTwdZ30Z-1692703936339)(https://gitee.com/galloping_pony/img-home/raw/master/image-20230821202528616.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UXGGGaqZ-1692703936340)(https://gitee.com/galloping_pony/img-home/raw/master/image-20230822095350835.png)]

    4. 授予权限:grant all privileges on *.* to 'root'@'%';%表示host不受限制,如果是本机使用localhost`

      • 网上很多是GRANT ALL PRIVILEGES ON *.* 'root'@'%' identified by '密码' WITH GRANT OPTION;
        有可能报错。
    5. 刷新权限:flush privileges;

    6. 重新测试

🏀 7.3、如果接着出现以下错误

image-20230822192640559

  1. 原因是mysql 8以上默认使用的是caching_sha2_password身份验证机制,之前用的是mysql_native_password。

  2. 从5.7升级到8.0不会改变现有用户的身份验证方式,但新用户会默认使用新的cacthing_sha2_password

  3. 解决方式:

    修改用户的密码加密方式:

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
    

✨ 7.4、再次测试

image-20230822191643949

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023MySQL+MyBatis知识点整理

文章目录 主键 外键 的区别?什么是范式?什么是反范式?什么是事务?MySQL事务隔离级别?MySQL事务默认提交模式?MySQL中int(1)和int(10)的区别MySQL 浮点数会丢失精度吗?MySQL支持哪几种时间类型&a…

线性数据结构:数组与链表的探索与应用

文章目录 1. 数组:连续存储的有序元素集合1.1 创建和访问数组1.2 数组的搜索与排序 2. 链表:非连续存储的动态数据结构2.1 单链表与双链表2.2 链表的操作与应用 3. 数组与链表的比较与应用3.1 数组与链表的比较3.2 数组与链表的应用 4. 总结与展望 &…

【Go 基础篇】切片:Go语言中的灵活数据结构

在Go语言中,切片(Slice)是一种强大且灵活的数据结构,用于管理和操作一系列元素。与数组相比,切片的大小可以动态调整,这使得它成为处理动态数据集合的理想选择。本文将围绕Go语言中切片的引入,介…

如何在有或没有WiF适配器的情况下把台式机接入WiFi

Wi-Fi在台式电脑中越来越普遍,但并不是所有的台式电脑都有。添加Wi-Fi,你就可以无线连接到互联网,并为其他设备托管Wi-Fi热点。 这是一个简单、廉价的过程。买一个合适的小适配器,你甚至可以随身携带,通过将一个小设备插入USB端口,可以快速将Wi-Fi添加到你遇到的任何桌面…

screen命令,可以断开服务器连接,依旧能运行你的程序了

可以参考博客1:https://blog.csdn.net/nima_zhang_b/article/details/82797928 可以参考博客2:https://blog.csdn.net/herocheney/article/details/130984403 Linux中的screen是一个命令行工具,可以让用户在同一个终端会话中创建多个虚拟终端。它非常有…

element-ui 弹窗里面嵌套弹窗,解决第二个弹窗被遮罩层掩盖无法显示的问题

当我们在 element-ui 中使用弹窗嵌套弹窗时,会出现第二个弹窗打开时被一个遮罩层挡着,就像下面这样: 下面提供两种解决方案 : 一、第一种方案 我们查询element-ui 官网可以发现 el-dialog 有这样几个属性: 具体使用就…

Android Looper Handler 机制浅析

最近想写个播放器demo,里面要用到 Looper Handler,看了很多资料都没能理解透彻,于是决定自己看看相关的源码,并在此记录心得体会,希望能够帮助到有需要的人。 本文会以 猜想 log验证 的方式来学习 Android Looper Ha…

Jmeter接口测试+压力测试

接口测试 Jmeter-http接口脚本 一般分五个步骤:(1)添加线程组 (2)添加http请求 (3)在http请求中写入接入url、路径、请求方式和参数 (4)添加查看结果树 (5)…

无涯教程-Python机器学习 - Stochastic Gradient Boosting函数

它也称为梯度提升机。在下面的Python食谱中,我们将通过使用pima Indians糖尿病数据集上的 sklearn 的 GradientBoostingClassifier 类来创建随机梯度Boostingensemble模型进行分类。 首先,导入所需的软件包,如下所示: from pandas import read_csv from sklearn.model_select…

LC1011. 在 D 天内送达包裹的能力(JAVA)

在 D 天内送达包裹的能力 题目描述上期经典算法 题目描述 leetcode 1011. 在 D 天内送达包裹的能力 难度 - 中等 传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。 传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量(we…

oracle 启停操作

1. 监听端口启停 # 根据实际情况 切换至oracle用户 su - oracle# 状态查看 lsnrctl stat# 启动1521端口监听 lsnrctl start# 关闭1521监听 lsnrctl stop 2. 数据库服务启停 # 立即关闭服务 shutdown immediate# 启动服务 startup

惠普NS1020激光打印机碳粉警告提示及添加碳粉方法

本文也适用于惠普NS1020、1020c 和 1020w 系列打印机。 通过碳粉量指示灯检查碳粉量。 如果碳粉量是满的或指示器显示 1,可选择添加一个碳粉或者忽略不添加。如果碳粉量指示灯显示 2或 2 和碳粉量警告感叹号图标 ,则表示碳粉量不足或严重不足&#xff0…

Stable Diffusion Web UI的原理与使用

Stable Diffusion是一套基于Diffusion扩散模型生成技术的图片生成方案,随着技术的不断发展以及工业界对这套工程细节的不断优化,使其终于能在个人电脑上运行,本文将从github下载开始讲一讲如何使用Stable Diffusion Web UI进行AI图像的生成。…

Unity3D Pico VR 手势识别 二

Unity3D Pico VR 手势识别_Cool-浩的博客-CSDN博客 此篇主要讲解怎么手势追踪,手势姿态自定义预制识别,不会导入SDK和配置环境的请看上一章节 环境要求 SDK 版本:2.3.0 及以上PICO 设备型号:PICO Neo3 和 PICO 4 系列PICO 设备系…

老年人跌倒智能识别算法 opencv

老年人跌倒智能识别算法通过opencvpython深度学习算法框架模型,老年人跌倒智能识别算法能够及时发现老年人跌倒情况,提供快速的援助和救援措施,保障老年人的安全。Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得…

封装公共el-form表单(记录)

1.公共表单组件 //commonForm.vue <script> import {TEXT,SELECT,PASSWORD,TEXTAREA,RADIO,DATE_PICKER } from /conf/uiTypes import { deepClone } from /utils export default {name: GFormCreator,props: {config: { // title/itemstype: Object,required: true}}…

【人工智能】—_贝叶斯网络、概率图模型、全局语义、因果链、朴素贝叶斯模型、枚举推理、变量消元

文章目录 频率学派 vs. 贝叶斯学派贝叶斯学派Probability&#xff08;概率&#xff09;:独立性/条件独立性&#xff1a;Probability Theory&#xff08;概率论&#xff09;:Graphical models &#xff08;概率图模型&#xff09;什么是图模型&#xff08;Graphical Models&…

L1-044 稳赢(Python实现) 测试点全过

题目 大家应该都会玩“锤子剪刀布”的游戏&#xff1a;两人同时给出手势&#xff0c;胜负规则如图所示&#xff1a; 现要求你编写一个稳赢不输的程序&#xff0c;根据对方的出招&#xff0c;给出对应的赢招。但是&#xff01;为了不让对方输得太惨&#xff0c;你需要每隔K次就…

React【React是什么?、创建项目 、React组件化、 JSX语法、条件渲染、列表渲染、事件处理】(一)

文章目录 React是什么&#xff1f; 为什么要学习React React开发前准备 创建React项目 React项目结构简介 React组件化 初识JSX 渲染JSX描述的页面 JSX语法 JSX的Class与Style属性 JSX生成的React元素 条件渲染&#xff08;一&#xff09; 条件渲染 &#xff0…

Gorilla LLM:连接海量 API 的大型语言模型

如果你对这篇文章感兴趣&#xff0c;而且你想要了解更多关于AI领域的实战技巧&#xff0c;可以关注「技术狂潮AI」公众号。在这里&#xff0c;你可以看到最新最热的AIGC领域的干货文章和案例实战教程。 一、前言 在当今这个数字化时代&#xff0c;大型语言模型&#xff08;LLM…