【挑战30天首通《谷粒商城》】-【第一天】10、环境-docker安装mysql

news2024/12/25 12:21:33

文章目录

  • 课程介绍
  • 一、docker 安装 mysql
      • Stage 1:下载镜像文件
        • Stage 1-1:打开官网查看镜像
        • Stage 1-2:拉取镜像
        • Stage 1-3:查看拉取的镜像
      • Stage 2:创建实例并启动
        • A:mysql(5.7版)
          • 参数说明
        • B:mysql(8.0以上版)
          • 参数说明
      • Stage 3:修改配置文件
        • A:my.cnf(5.7版)
          • 注意:解决 MySQL 连接慢的问题(解释:跳过域名解析)
        • B:my.cnf(8.0 + 版)
      • Stage 4:重启mysql,使配置生效
  • 二、 docker-compose 安装 mysql (推荐)
      • Stage 1:创建 docker-compose.yaml 文件
        • docker-compose-8.0.30.yaml
        • docker-compose-8.4.0.yaml
      • Stage 2:创建配置文件
      • Stage 3:创建容器
      • Stage 4:VirtualBox端口映射
      • Stage 5:navcat 测试连接
  • 三、 日常问题
    • 3.1 mysql 修改密码
  • 四、 附录
    • my.cnf 配置文件【8.0以上版本】
  • one more thing
    • 废话不多说上教程:(动画教程 + 图文教程)
    • 一、动画教程
      • 激活 与 升级(至最新版本)
    • 二、图文教程

课程介绍

  • docker 安装 mysql
  • docker-compose 安装 mysql (推荐)

一、docker 安装 mysql

Stage 1:下载镜像文件

Stage 1-1:打开官网查看镜像
  • 点击进入官网
    在这里插入图片描述

  • 吐槽:这里 mysql 官网镜像最新也只有5.7 ,没有 8.0以上版本,然而 8.0 比5.7快一倍

  • 小技巧一:使用 docker search mysql:8 查找镜像,这里镜像名为:lkhoho/mysql

  • 小技巧二:尝试拉取官网最新长期维护的稳定版: docker pull mysql:8.4.0【推荐】

在这里插入图片描述

Stage 1-2:拉取镜像

官方下载文档
官方指南

  • 目前最新的长期维护版 - mysql:8.4.0

在这里插入图片描述

# 方式一:拉取官网这里指的是官网最新的镜像,5.7 同指令 docker pull mysql:latest
docker pull mysql
# 方式二:拉取查找镜像,mysql:8.0
docker pull lkhoho/mysql 
# 方式三:官网找到最新的长期维护版 - mysql:8.4.0(极力推荐)
docker pull mysql:8.4.0

在这里插入图片描述

Stage 1-3:查看拉取的镜像
  • docker images
    在这里插入图片描述

Stage 2:创建实例并启动

A:mysql(5.7版)
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql5.7/log:/var/log/mysql \
-v /mydata/mysql5.7/data:/var/lib/mysql \
-v /mydata/mysql5.7/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
参数说明
  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
  • --name mysql:容器名 mysql
  • -v /mydata/mysql5.7/conf:/etc/mysql:将配置文件夹挂载到主机
  • -v /mydata/mysql5.7/log:/var/log/mysql:将日志文件夹挂载到主机
  • -v /mydata/mysql5.7/data:/var/lib/mysql/:将数据文件夹挂载到主机
  • -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码为123456
  • -d mysql:5.7:使用mysql:5.7 镜像创建容器
B:mysql(8.0以上版)
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql8.0/data:/var/lib/mysql \
-v /mydata/mysql8.0/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=12345678 \
-d mysql:8.4.0
参数说明
  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
  • --name mysql:容器名 mysql
  • -v /mydata/mysql8.0/conf:/etc/mysql/conf.d:将配置文件夹挂载到主机
  • -v /mydata/mysql8.0/data:/var/lib/mysql/:将数据文件夹挂载到主机
  • -e MYSQL_ROOT_PASSWORD=12345678 :初始化 root 用户的密码为12345678
  • -d mysql:8.4.0:使用mysql:8.4.0镜像创建容器

Stage 3:修改配置文件

A:my.cnf(5.7版)
  • 进入目录 /mydata/mysql5.7/conf/
  • 新建 my.cnf,修改文件权限

在这里插入图片描述

  • 添加如下内容
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
注意:解决 MySQL 连接慢的问题(解释:跳过域名解析)

在配置文件中加入如下,并重启 mysql

[mysqld]
skip-name-resolve
B:my.cnf(8.0 + 版)
  • 进入目录 /mydata/mysql8.0/conf/
  • 新建 my.cnf,修改文件权限

在这里插入图片描述

  • 添加如下内容
[mysqld]
## 同一局域网内注意要唯一
#server-id=100  
## 开启二进制日志功能,可以随便取(关键)
#log-bin=mysql-bin
max_connections=500

Stage 4:重启mysql,使配置生效

docker restart mysql

二、 docker-compose 安装 mysql (推荐)

Stage 1:创建 docker-compose.yaml 文件

  • 这里测试两个版本,为了区分所以使用名为
docker-compose-8.0.30.yaml
version: '3.1'

services:       
  mysql:
    image: mysql:8.0.30
    container_name: mysql
    ports:
      - 3306:3306
    restart: always
    privileged: true
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: root
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
    volumes: 
      - ./8.0.30/conf:/etc/mysql/conf.d
      - ./8.0.30/data:/var/lib/mysql
    deploy:
      resources:
        limits:
          memory: 2G
        reservations:
          memory: 1G
networks:
  default:
    external:
      name: xph_network
docker-compose-8.4.0.yaml
version: '3.1'

services:       
  mysql:
    image: mysql:8.4.0
    container_name: mysql
    ports:
      - 3306:3306
    restart: always
    privileged: true
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: root
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
    volumes: 
      - ./8.4.0/conf:/etc/mysql/conf.d
      - ./8.4.0/data:/var/lib/mysql
    deploy:
      resources:
        limits:
          memory: 2G
        reservations:
          memory: 1G
networks:
  default:
    external:
      name: xph_network

Stage 2:创建配置文件

  • docker-compose-8.4.0.yaml 放在 /mnt/docker/mysql/

  • /mnt/docker/mysql/8.4.0/conf下创建文件如下 新建 my.cnf,修改文件权限
    在这里插入图片描述

  • 添加如下内容

[mysqld]
## 同一局域网内注意要唯一
#server-id=100  
## 开启二进制日志功能,可以随便取(关键)
#log-bin=mysql-bin
max_connections=500

Stage 3:创建容器

 docker-compose -f docker-compose-8.4.0.yaml up -d --build

Stage 4:VirtualBox端口映射

  • 这里很奇怪,第7章节 说不用映射
  • 后面如果知道原因再补充笔记
  • 在这里插入图片描述

Stage 5:navcat 测试连接

在这里插入图片描述

三、 日常问题

3.1 mysql 修改密码

  • 这里修改了root的本地登录和远程登录密码
ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'new_password';

四、 附录

my.cnf 配置文件【8.0以上版本】

# Example MySQL config file for small systems.
#
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
#
# MySQL programs look for option files in a set of
# locations which depend on the deployment platform.
# You can copy this option file to one of those
# locations. For information about these locations, see:
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
# The following options will be passed to all MySQL clients
[client]
default-character-set=utf8
#password = your_password
port        = 3336
socket      = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
port        = 13306        # 我修改了默认端口
socket      = /tmp/mysql.sock
lower_case_table_names = 1    # 是否对sql语句大小写敏感,1表示不敏感,即不区分大小写
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 256K   # 该字段根据需要修改,默认是128K,我的是因为启动报了这个字段的错导致启动失败,所以我改成256K了

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
server-id   = 1
# Uncomment the following if you want to log updates
#log-bin=mysql-bin
# binary logging format - mixed recommended
#binlog_format=mixed
# Causes updates to non-transactional engines using statement format to be
# written directly to binary log. Before using this option make sure that
# there are no dependencies between transactional and non-transactional
# tables such as in the statement INSERT INTO t_myisam SELECT * FROM
# t_innodb; otherwise, slaves may diverge from the master.
#binlog_direct_non_transactional_updates=TRUE
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /usr/local/mysql/data
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /usr/local/mysql/data
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout

one more thing

程序员的烦恼

  • 为激活编程软件到处找激活码(JetBrains 全家通)
  • 苦于JetBrains 正版授权太贵而放弃
  • 学习资料贵且不成体系而躺平

关注公众号金榜探云手

你可以获得什么?

  1. JetBrains 最新激活码,永久更新(只供娱乐,切勿商用)
    公众号回复:00cs
  2. JetBrains 正版授权,全主题、全插件免费使用,一年一杯咖啡钱, 公众号回复:vip
  3. IT 技术视频共享(国内外全系列,只对粉丝开放)

付费版Idea百科全书,和Pycharm使用百科全书全部输出整理了,这些工具都掌握了对编码效率肯定是有本质上的提升,配合Github Copilot基本能让工具完成大部分开发工作,专注完成业务实现就好。

IDEA付费版使用百科全书
https://ziby0nwxdov.feishu.cn/docx/MiCfdogB4omIa9xlW50cByiGn5n

Pycharm付费版使用百科全书 https://ziby0nwxdov.feishu.cn/docx/DArFdVFQpomfUvxV7xZcCwXYn0c

废话不多说上教程:(动画教程 + 图文教程)

一、动画教程

激活 与 升级(至最新版本)

  • 激活
    请添加图片描述
  • 升级最新版本

请添加图片描述

二、图文教程

  • [点击进入](https://blog.csdn.net/ladymorgana/article/details/138522749?spm=1001.2014.3001.5

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

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

相关文章

代码随想录—— 填充每个节点的下一个右侧节点指针(Leetcode116)

题目链接 层序遍历 /* // Definition for a Node. class Node {public int val;public Node left;public Node right;public Node next;public Node() {}public Node(int _val) {val _val;}public Node(int _val, Node _left, Node _right, Node _next) {val _val;left _…

【完整过程】Windows下记录PadleOCR训练自己的ocr模型

一、前期准备 1、代码 参考的博主使用的是2.6版本的 博主的paddleocr代码 下面这个是官方的&#xff0c;可能已经更新了&#xff08;我用的是官网当前最新版&#xff09; paddleocr的源代码 注意&#xff1a;最好把上面两个代码都下载下来&#xff0c;后面都会用到 参考博…

HTML静态网页成品作业(HTML+CSS)——自动化专业介绍设计制作(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有4个页面。 二、作品演示 三、代…

从需求到实现:能源软件服务商如何量身定制企业解决方案

能源行业需要数字化转型的原因主要有以下几点&#xff1a;首先&#xff0c;数字化技术可以提高生产效率和安全性&#xff0c;通过实时监控和智能调度降低事故风险&#xff0c;并实现远程控制和自动化生产。其次&#xff0c;数字化转型有助于推动能源行业的创新发展&#xff0c;…

Android ndk获取手机内部存储卡的根目录方法

如下所示&#xff1a; 代码语言&#xff1a;javascript jclass envcls env- FindClass("android/os/Environment"); //获得类引用if (envcls nullptr) return 0;//找到对应的类&#xff0c;该类是静态的返回值是FilejmethodID id env- GetStaticMethodID(envcls,…

Nodejs 第七十章(OSS)

OSS OSS&#xff08;Object Storage Service&#xff09;是一种云存储服务&#xff0c;提供了一种高度可扩展的、安全可靠的对象存储解决方案 OSS 对象存储以对象为基本存储单元&#xff0c;每个对象都有唯一的标识符&#xff08;称为对象键&#xff09;和数据。这些对象可以…

Java | Leetcode Java题解之第90题子集II

题目&#xff1a; 题解&#xff1a; class Solution {List<Integer> t new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();public List<List<Integer>> subsetsWithDup(int[] nums) {Arra…

oracle多条重复数据,取最新的

1、原理讲解-可直接看2 筛选出最新的 SELECT * FROM ( SELECT t.*, ROW_NUMBER() OVER (PARTITION BY LOCALAUTHID ORDER BY LASTUPDATETIME DESC) AS rn FROM USER_LOCALAUTH_STATE t ) t WHERE t.rn 1; 解释&#xff1a; 这个序号是基于[LOCALAUTHID]字段进行分…

前端 finalShell 与 docker 创建 服务连接 部署项目

准备 fianlShell 下载地址 官网下载地址 要哪个下那个&#xff0c; 我的是第一个 下载后 安装 打开 选择 SSH 进行配置 配置后点击确定即可 1、yum install -y docker -y 表示不询问&#xff0c;使用默认配置进行安装 检测版本 装最新的 2、 yum list installed | gre…

wangeditor覆盖el-select下拉框解决方法

问题&#xff1a; 发现wangeditor的层级过高&#xff0c;一开始一直想要修改全局css&#xff0c;奈何半天找不到&#xff0c;网上一大堆解决方法都无法生效&#xff0c;自定义的css样式也无法覆盖。 如果有尝试好久的朋友可以参考我的解决方案&#xff1a; 关键语句&#xf…

关于JVM内存模型和堆内存模型的理解

文章目录 前言一、JVM 内存模型的理解1.第一部分&#xff1a;线程共享区&#xff08;堆和方法区&#xff09;2.第二部分&#xff1a;线程独占区&#xff08;程序计数器、虚拟机栈和本地方法栈&#xff09;3.JVM的几个知识点3.1 垃圾回收就指线程共享区&#xff08;堆和方法区&a…

3.3 整型

本节必须掌握的知识点&#xff1a; 整型数据类型的取值范围 示例八 代码分析 汇编解析 获取数据类型的取值范围 3.3.1 整型数据类型取值范围 整型是用来表示限定范围内连续整数的数据类型。表3-1列出了C语言编译器定义的整型数据类型及其大小和取值范围。 类型 存储大小…

【卫星影像三维重建随记】obj模型及其纹理材质文件介绍

obj模型及纹理材质介绍 1.介绍1.1 背景1.2 带有纹理色彩的obj三维模型 2.带有纹理信息obj三维模型文件解析2.1 三维模型数据2.2 obj文件内容2.3mtl文件内容 3 参考 1.介绍 1.1 背景 OBJ格式是一种简单且通用的三维模型文件格式&#xff0c;支持多边形网格和基本的几何体类型&…

IDEA运行main方法,为什么要编译整个工程?

每次在IDEA中导入工程后&#xff0c;想写一个类去测试一些数据&#xff0c;有时候只是写一个main方法进行简单的输出&#xff1b; 但是每次运行一个main方法&#xff0c;整个工程都会重新编译一下&#xff0c;耗时不短 在Eclipse就不会有这个问题&#xff1b; 为什么会编译整…

华为昇腾310B1平台视频解码失败[ERROR] Send frame to vdec failed, errorno:507018

目录 1 [ERROR] Send frame to vdec failed, errorno:507018 2 bug解决尝试1 3 bug解决尝试2 4 最终解决方法 参考文献&#xff1a; 1 [ERROR] Send frame to vdec failed, errorno:507018 某项目中的代码运行报错 [ERROR] Send frame to vdec failed, errorno:507018 Ac…

Spring Boot:异常处理

Spring Boot 前言使用自定义错误页面处理异常使用 ExceptionHandler 注解处理异常使用 ControllerAdvice 注解处理异常使用配置类处理异常使用自定义类处理异常 前言 在 Spring Boot 中&#xff0c;异常处理是一个重要的部分&#xff0c;可以允许开发者优雅地处理应用程序中可…

平地惊雷,GPT-4o 凌晨震撼发布

GPT-4o 今日凌晨&#xff0c;OpenAI 2024 年春季发布会召开&#xff0c;OpenAI 通过短短 28 分钟的发布会&#xff0c;发布了「再次震惊世界」的 GPT-4o&#xff0c;其中 o 是指 omni&#xff08;全能&#xff09;的意思。 一款「全新交互&#xff08;支持 文本/音频/视频 组合…

平安养老险深圳分公司携手福海街道开展5.12防灾减灾活动

在构建和谐社会、倡导人文关怀的当下&#xff0c;平安养老险深圳分公司以高度的社会责任感和深厚的人文情怀&#xff0c;持续关注老年人的健康与安全。在今年“5.12防灾减灾日”来临之际&#xff0c;公司积极响应倡议&#xff0c;于5月10日携手福海街道举办了一场别开生面的消防…

web学习记录--(5.14)

1.Sublime安装与汉化 直接点击windows即可下载&#xff0c;安装即可 Thank You - Sublime Text 汉化 Install Package ChineseLocalzation 2.PHPstorm下载以及激活,汉化 直接下载&#xff0c;然后找激活码激活即可 汉化 plugins&#xff08;插件&#xff09;/chinese&…

【源码】相亲交友系统全新UI/情感测试/婚庆中介/交友系统

【交友】相亲交友系统全新UI/情感测试/婚庆中介/交友系统 带商城&#xff0c;情感测试。 https://www.52codes.cc/codes/qt