【鸟哥杂谈】腾讯云 CentOS8 Linux环境下通过docker安装mysql

news2024/11/26 5:50:55

忘记过去,超越自己

  • ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
  • ❤️ 本篇创建记录 2023-01-15 ❤️
  • ❤️ 本篇更新记录 2023-01-15 ❤️
  • 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝
  • 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
  • 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志 🔥

目录

    • 1. 前言
    • 2. 获取mysql镜像
      • 2.1 查看镜像版本
      • 2.2 拉取镜像
    • 3. 运行mysql容器
    • 4. 进入mysql容器
    • 5. 操作mysql
      • 5.1 输入用户密码进入mysql
      • 5.2 常用命令
    • 6. mysql占用内存高

1. 前言

之前在腾讯云服务器上也搭建使用了docker。

【鸟哥杂谈】腾讯云 CentOS8 Linux环境搭建docker

这节就在docker环境下搭建mysql环境。

2. 获取mysql镜像

2.1 查看镜像版本

在官网上查找mysql镜像版本。

https://hub.docker.com/search?q=mysql&type=image&architecture=amd64&operating_system=linux&image_filter=official

在这里插入图片描述
点击官方版本后,切换到tag标签可以看到不同的版本(由于我们是腾讯云amd的os,需要关注这个):
在这里插入图片描述
右侧对应各个版本的拉取命令可以直接复制使用即可:
在这里插入图片描述
这里区分了不同的linux发行版本,这里我们不需要debian系统。

2.2 拉取镜像

这里我们选择第一个镜像。
在这里插入图片描述
输入命令开始拉取镜像。

docker pull mysql:latest在这里插入图片描述

查看镜像

docker images
在这里插入图片描述

3. 运行mysql容器

因为这里我们需要挂载mysql的一些文件以及配置在外部目录,所以在home下创建mysql目录,并且在mysql目录下创建 data 和 config目录。

[root@VM-8-12-centos home]# mkdir -p  mysql
[root@VM-8-12-centos home]# ls -al
总用量 32
drwxr-xr-x.  8 root       root       4096 116 09:26 .
dr-xr-xr-x. 23 root       root       4096 1212 15:51 ..
drwx------   2       1004       1004 4096 1220 16:37 dpj1
drwx------   2       1005       1005 4096 1220 16:37 dpj2
drwx------   2       1003       1003 4096 1215 00:22 dpjcn
drwx------  10 lighthouse lighthouse 4096 1022 19:40 lighthouse
drwxr-xr-x   2 root       root       4096 116 09:26 mysql
drwx------   2 www        www        4096 64 2022 www
[root@VM-8-12-centos home]# cd mysql/
[root@VM-8-12-centos mysql]# ls -al
总用量 8
drwxr-xr-x  2 root root 4096 116 09:26 .
drwxr-xr-x. 8 root root 4096 116 09:26 ..
[root@VM-8-12-centos mysql]# mkdir data
[root@VM-8-12-centos mysql]# mkdir config
[root@VM-8-12-centos mysql]# ls -al
总用量 16
drwxr-xr-x  4 root root 4096 116 09:28 .
drwxr-xr-x. 8 root root 4096 116 09:26 ..
drwxr-xr-x  2 root root 4096 116 09:28 config
drwxr-xr-x  2 root root 4096 116 09:28 data
[root@VM-8-12-centos mysql]# 

运行容器需要执行以下命令:

docker run -it -d --name mysql --net=host \
-m 500m -v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/config:/etc/mysql/conf.d  \
-e MYSQL_ROOT_PASSWORD=abc123456 \
-e TZ=Asia/Shanghai mysql:latest \
--lower_case_table_names=1

命令含义:

docker run -p 本地主机端口号:容器服务端口号 --name 容器名字 [-e 配置信息修改] -d 镜像名字

  • v 挂载卷,前面是docker外面的文件夹,:后面是docker内对应的文件夹
    conf.d是数据库的配置文件
  • e 修改配置,一些参数可以参考 https://hub.docker.com/_/mysql
    MYSQL_ROOT_PASSWORD指定数据库密码,账户名默认是root
  • lower_case_table_names=1关闭数据库名大小写区分
[root@VM-8-12-centos mysql]# docker run -it -d --name mysql --net=host \
> -m 500m -v /home/mysql/data:/var/lib/mysql \
> -v /home/mysql/config:/etc/mysql/conf.d  \
> -e MYSQL_ROOT_PASSWORD=abc123456 \
> -e TZ=Asia/Shanghai mysql:latest \
> --lower_case_table_names=1
71fe5ff2e32e365ea8f19ef10828a11f737f9186945e8c139166f980fb7b116f
[root@VM-8-12-centos mysql]# 

查看docker运行命令

[root@VM-8-12-centos mysql]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
71fe5ff2e32e        mysql:latest        "docker-entrypoint..."   55 seconds ago      Up 54 seconds                           mysql
[root@VM-8-12-centos mysql]# 

表示正常运行。

4. 进入mysql容器

docker exec -it mysql /bin/bash

[root@VM-8-12-centos data]# docker exec -it mysql /bin/bash
bash-4.4# 

5. 操作mysql

5.1 输入用户密码进入mysql

输入命令

mysql -uroot -p密码

bash-4.4# mysql -uroot -pabc123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.31 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

这里表示mysql正常运行起来。

5.2 常用命令

参考 【NodeJs-5天学习】第四天存储篇① ——安装使用mysql 8.0 常用命令部分。

6. mysql占用内存高

5.6.6以后mysql默认打开了performance_schema,那么启动内存大概就是450M;
而如果关闭这个参数的话,启动内存就是100多M。

使用命令来查看 MySQL 默认配置文件位置

mysql --help|grep ‘cnf’

bash-4.4# mysql --help|grep 'cnf'
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 
bash-4.4# 

看看配置文件有什么内容?

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql

pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock

!includedir /etc/mysql/conf.d/

我们把 performance_schema 关掉。

[mysqld]
performance_schema=OFF

然后重启mysql,你会发现内存消耗会里面降下来。

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

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

相关文章

Vite中如何更好的使用TS

TS 是JS的一个类型检查工具,检查我们代码中可能会存在的一些隐形问题;同时可以使我们的编译器具备一些语法提示功能。 如果我们使用create-vue(vue3官方脚手架工具)创建了项目,该项目基于 Vite 且 TypeScript 已经准备…

SpringBoot+Vue使用easypol出现无法导出Excel表的问题

本篇博文目录1.异常信息2.原因3.解决办法4.详细的SpringBooteasypol前后端分离实现excel导出的步骤1.异常信息 今天在使用easypol导出Excel表的时候,发现能够从后端接口返回数据,但是就是无法导出Excel,控制台输出devicepolicies:1 Uncaught (in promise) error,并且…

2022年度总结 - 明月醉窗台

2022年度总结 - 明月醉窗台 1.2022年成果 - 感谢CSDN提供了自我创作的平台,有多少个夜晚我将其作为心灵的寄托... - 感谢各位小伙伴的抬爱和学习过程中的共同见证,将人生视为一条向上的曲线是明确且坚持不懈的抉择... - 立足当下,不忘脚踏实…

【算法基础】1.5 前缀和与差分

文章目录前缀和题目描述解法讲解二维前缀和题目描述解法讲解差分题目描述解法讲解二维差分题目描述解法讲解前缀和 题目描述 输入一个长度为 n 的整数序列。 接下来再输入 m 个询问,每个询问输入一对 l,r。 对于每个询问,输出原序列中从第 l 个数到第 …

IVD-Net:多模态UNet在MRI中的椎间盘定位和分割

摘要 本文提出了一种多模态磁共振图像中的椎间盘(IVD)定位和分割体系结构,它扩展了UNet。与单一的图像相比,多模态的数据带来了互补的信息有助于更好的数据表示和判别能力。 在本文中,每种MRI模态的数据都以不同的路…

Waf功能、分类与绕过

一. waf工作原理 Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 常见的系统攻击分为两类: 一是利用Web服务器的漏洞进行攻击,如DDOS攻击、病毒木马破坏等攻击;二是利用网页自身的安全漏洞进…

【C语言】实现通讯录(详解)

目录 一、需要实现的功能 1.1 类型和结构体的定义 二、拆分代码 2.1 游戏菜单 2.1.1 函数调用 2.1.2 函数体的实现 2.1.2运行效果 2.2 初始化结构体 2.2.1 函数调用 2.2.2 函数体的实现 2.2.3 运行结果 2.3 添加联系人信息 2.3.1 函数调用 2.3.2 函数体的实现 2…

操作系统之光--鸿蒙

鸿蒙是什么?鸿蒙包含Openharmony和harmonyOS。Openharmony是华为向开放原子开源基金会捐赠了鸿蒙开源部分的代码,归属于开放原子开源基金会。HarmonyOS是基于Openharmony的商业发行版本。目前大家华为手机上运行就是它。鸿蒙能做什么?很明显&…

【算法基础】1.6 双指针算法

文章目录双指针思想最长连续不重复子序列数组元素的目标和题目讲解判断子序列双指针思想 双指针算法,就是可以将 n ^ 2 优化到 n。 最长连续不重复子序列 给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度…

IO流的学习

文章目录一、File类的使用创建File实例File常用方法总结二、IO流分类读入数据的基本操作步骤(第一种)步骤(第二种)写出数据的基本操作步骤读入并写出数据的基本操作(复制)步骤注意处理流之一:缓…

【Nginx】静态资源部署(下)

文章目录静态资源的缓存处理缓存概述浏览器缓存相关指令expires指令add_header指令Nginx的跨域问题解决同源策略跨域问题跨域问题的案例演示解决方案静态资源防盗链什么是资源盗链Nginx防盗链的实现原理:针对目录进行防盗链静态资源的缓存处理 缓存概述 什么是缓存…

【爪洼岛冒险记】第4站:Java中如何进行控制台输入输出?用Java实现猜数字小游戏;超详细讲解Java中的方法:方法的重载,方法的签名

🌱博主简介:是瑶瑶子啦,一名大一计科生,目前在努力学习JavaSE。热爱写博客~正在努力成为一个厉害的开发程序媛! 📜所属专栏:爪洼岛冒险记【从小白到大佬之路】 ✈往期博文回顾:链接: 【爪洼岛冒…

【文件指针+文件顺序读写操作函数】

1.文件的打开和关闭 1.1 什么是文件指针 2.文件操作函数 2.1 fgetc函数和fputc函数2.2 fgets函数和fputs函数2.3 fscanf函数和fprintf函数2.4 fwrite函数和fread函数 1.文件的打开和关闭 1.1 什么是文件指针? 每个被使用的文件都在内存中开辟了一个相应的文件…

文件操作详解

文章目录前言一、什么是文件?1.程序文件2.数据文件3.文件名二、文件的打开和关闭1.文件指针2.文件的打开和关闭3.打开模式汇总4.例子三.操作函数介绍1.基本函数2.fseek2.ftell3.rewind4.feof尾话前言 恐怕很多人学完了c语言甚至不知道文件操作,也确实&am…

FPGA学习笔记-知识点3-Verilog语法1

1.关键字 2.运算符 按其功能可分为以下几类: 1) 算术运算符(,&#xff0d;,&#xff0c;/,&#xff05;) 2) 赋值运算符(,<) 3) 关系运算符(>,<,>,<) 4) 逻辑运算符(&&,||,!) 5) 条件运算符( ? &#xff1a;) 6) 位运算符(,|,^,&,^) …

【微信小程序】动态设置导航栏标题

&#x1f3c6;今日学习目标&#xff1a;第十八期——动态设置导航栏标题 &#x1f603;创作者&#xff1a;颜颜yan_ ✨个人主页&#xff1a;颜颜yan_的个人主页 ⏰预计时间&#xff1a;25分钟 &#x1f389;专栏系列&#xff1a;我的第一个微信小程序 文章目录前言使用配置文件…

消息中间件简介

UNIX的进程间通信就开始运用消息队列技术&#xff0c;一个进程将数据写入某个特定的队列中&#xff0c;其它进程可以读取队列中的数据&#xff0c;从而实现异步通信。对于如今的分布式系统&#xff0c;消息队列已经演变为独立的消息中间件产品&#xff0c;相比于RPC同步通信的方…

设计模式_行为型模式 -《模板方法模式》

设计模式_行为型模式 -《模板方法模式》 笔记整理自 黑马程序员Java设计模式详解&#xff0c; 23种Java设计模式&#xff08;图解框架源码分析实战&#xff09; 行为型模式用于描述程序在运行时复杂的流程控制&#xff0c;即描述多个类或对象之间怎样相互协作共同完成单个对象都…

测试开发 | AppCrawler 自动遍历测试实践(三):动手实操与常见问题汇总

上两篇文章介绍了自动遍历的测试需求、工具选择和 AppCrawler 的环境安装、启动及配置文件字段基本含义&#xff0c;这里将以实际案例更加细致的说明配置文件的用法和一些特殊场景的处理。 实操演示 常规使用 下面我们继续之前的例子&#xff0c;在雪球搜索框输入搜索内容后的页…

代码随想录算法训练营第六天 | 哈希表理论基础,242.有效的字母异位词,349. 两个数组的交集, 202. 快乐数,1. 两数之和

第五天 周日 休息~【提醒补坑&#xff1a;链表总结还没写】一、参考资料哈希表理论基础文章连接&#xff1a;https://programmercarl.com/%E5%93%88%E5%B8%8C%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html有效的字母异位词题目链接/文章讲解/视频讲解&#xff1a;https:…