(四)Doceke安装MySQL镜像+Docker启动MySQL容器

Doceke安装MySQL镜像/Docker启动MySQL容器

一、doceke安装MySQL镜像

切换到root用户,su root 。

1、启动Docker

启动:sudo systemctl start docker
停止:systemctl stop docker
重启:systemctl restart docker
查看docker运行状态(显示绿色代表正常启动):systemctl status docker 
//删除docker上的镜像(如MySQL镜像)(出现问题可以移除镜像,重新安装)(先docker images查看镜像获取到IMAGE ID)
docker rmi 92034fe9a41f(IMAGE ID)

2、查询mysql

docker search mysql

3、安装mysql

拉取镜像 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

1.默认拉取最新版本mysql

docker pull mysql

2.拉取指定版本mysql_5.7

sudo docker pull mysql:5.7

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iOQhISxR-1692619884072)(C:\Users\杨kaiao\AppData\Roaming\Typora\typora-user-images\image-20230821093050872.png)]

4、查看镜像

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

docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3QYZTp4j-1692619884072)(C:\Users\杨kaiao\AppData\Roaming\Typora\typora-user-images\image-20230821093019368.png)]

二、Docker启动MySQL容器

开启自启:docker update mysql --restart=alawys
停止mysql容器:docker stop mysql
重启mysql容器:docker restart mysql
//移除一个镜像(出现问题可以移除重新启动)(先docker ps查看正在运行的容器获取到CONTAINER ID)
docker rm ba51fc8d04e1(CONTAINER ID)

1、启动mysql容器(创建镜像实例)

1.指定版本

sudo docker run -p 3306:3306 --name mysql  \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

2.最新版本

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 \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PzQSO5pw-1692619884072)(C:\Users\杨kaiao\AppData\Roaming\Typora\typora-user-images\image-20230821114357510.png)]

2、命令参数含义:容器=完整Linux

docker run:在docker中启动一个容器实例
-p 3306:3306:指定宿主机端口与容器端口映射关系,容器与主机映射端口为,主机3306,容器3306,访问Linux端口就能访问到MySQL容器
--name mysql:容器运行后的名称,创建的容器名称
-v /mysqldata/mysql/log:/var/log/mysql:映射日志目录,将容器/var/log/mysql目录下的数据,备份到主机(虚拟机)的 /mysqldata/mysql/log目录下,有映射关系,其中一方修改另外一方也跟着修改
-v /mysqldata/mysql/data:/var/lib/mysql:映射数据目录,将容器/var/lib/mysql目录下的数据,备份到主机(虚拟机)的 /mysqldata/mysql/data目录下,有映射关系,其中一方修改另外一方也跟着修改
-v /mysqldata/mysql/conf:/etc/mysql:映射配置目录,将容器/etc/mysql目录下的数据,备份到主机(虚拟机)的 mysqldata/mysql/conf目录下,有映射关系,其中一方修改另外一方也跟着修改
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
-d mysql:latest:后台运行mysql容器,版本是latest(最新版)。

3、查看正在运行的容器

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

这个时候如果显示的是up状态,那就是启动成功了。

如果不是up,可以看我这篇文档解决问题:https://blog.csdn.net/m0_65992672/article/details/132405522

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XN6QQ195-1692619884073)(C:\Users\杨kaiao\AppData\Roaming\Typora\typora-user-images\image-20230821114407528.png)]

4、测试连接

连接虚拟机地址,密码是启动MySQL时设置的密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EzLZfaq7-1692619884073)(C:\Users\杨kaiao\AppData\Roaming\Typora\typora-user-images\image-20230821183543379.png)]

连接成功,说明MySQL已经安装好了。

5、MySQL 配置,修改字符编码格式

虚拟机/mydata/mysql/conf/my.cnf文件修改了,对应的映射关系的MySQL容器/etc/mysql/my.cnf也进行了修改

vi /mydata/mysql/conf/my.cnf

插入以下配置

vi命令:
i:插入
Esc 退出编辑模式
:wq 保存并退出 
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
注意:
配置文件中的格式一定要正确,粘贴进来时,会自己变换格式,记得自己进行换行哦。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3R5k1Ect-1692619884073)(C:\Users\杨kaiao\AppData\Roaming\Typora\typora-user-images\image-20230821155107497.png)]

注意:解决 MySQL 连接慢的问题
在配置文件中加入如下,并重启 mysql
[mysqld]
skip-name-resolve
解释: skip-name-resolve:跳过域名解析

6、重启mysql,应用到配置

docker restart mysql

7、进入容器内部

docker exec -it mysql /bin/bash
查看目录结构:
ls
查看mysql装在哪里:
whereis mysql
退出容器:
exit;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UHXHWm3t-1692619884073)(C:\Users\杨kaiao\AppData\Roaming\Typora\typora-user-images\image-20230821150024731.png)]

虚拟机/mydata/mysql/conf/my.cnf文件修改了,对应的映射关系的MySQL容器/etc/mysql/my.cnf也进行了修改

可以根据下面截图中的命令去运行看看:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L1EAbfCV-1692619884073)(C:\Users\杨kaiao\AppData\Roaming\Typora\typora-user-images\image-20230821184013431.png)]

8、登录MySQL

先进入容器内部
docker exec -it mysql /bin/bash
在登录MySQL
mysql -u root -p
退出容器:
exit;

在这里插入图片描述

9、设置开启自启

开启虚拟机自动开启MySQL容器

docker update mysql --restart=alawys

在这里插入图片描述

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

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

相关文章

【业务功能篇84】微服务SpringCloud-ElasticSearch-Kibanan-电商实例应用

一、商品上架功能 ElasticSearch实现商城系统中全文检索的流程。 1.商品ES模型 商品的映射关系 PUT product {"mappings": {"properties": {"skuId": {"type": "long"},"spuId": {"type": "ke…

Java学数据结构(3)——树Tree B树 红黑树 Java标准库中的集合Set与映射Map 使用多个映射Map的案例

目录 引出B树插入insert删除remove 红黑树(red black tree)自底向上的插入自顶向下红黑树自顶向下的删除 标准库中的集合Set与映射Map关于Set接口关于Map接口TreeSet类和TreeMap类的实现使用多个映射Map:一个词典的案例方案一:使用一个Map对象方案二&…

0基础入门代码审计-2 Fortify初探

0x01 序言 目前又加入一位新童鞋了,最近将会再加入cs相关的专栏,都是以基础为主,毕竟太复杂的东西,能看懂的人太少。 0x02 准备工具 1、Fortify 2、需要审计的源码 0x03 Fortify的简单使用 1、 1、在开始菜单栏中找到Audit Wo…

VScode代码自动补全提示

VScode代码自动补全提示 打开设置 搜索 Suggest:Snippets Prevent Quick Suggestions ,去掉勾选 CtrlShiftP打开setting.json文件,添加以下代码 "editor.suggest.snippetsPreventQuickSuggestions": false,"editor.quickSuggestions…

身为一个后端程序员如何快速制作后端管理系统的UI

前言 我的专业领域在后端开发上,前端我仅仅是熟悉,但是要从头开发一个前端UI界面有点难为人了。那么身为一个后端程序员我们怎么来开发后端管理系统UI界面呢? 方案1:现成的模版来套(有一定的前端基础,只是…

BDCC - 闲聊数据仓库的架构

文章目录 典型数据仓库架构图数据仓库ETL vs ELTETLELT区别联系 数据仓库分层(1)数据仓库ODS层(2)数据仓库CDM层DWD数据明细层DWS数据汇总层 (3)数据仓库ADS层 典型数据仓库架构图 按自下而上的顺序&#x…

Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required问题解决

运行程序的时候出现了如下的报错: 解决方法:去除EnableAutoConfiguration中的(exclude{DataSourceAutoConfiguration.class})

pytest pytest.ini 配置日志输出至文件

创建pytest.ini 文件 [pytest] log_file pytest_log.txt log_file_level INFO log_file_date_format %Y-%m-%d %H:%M:%S log_file_format %(asctime)s | %(filename)s | %(funcName)s | line:%(lineno)d | %(levelname)s | %(message)s import pytest import loggingdef …

研磨设计模式day12命令模式

目录 定义 几个参数 场景描述 代码示例 参数化设置 命令模式的优点 本质 何时选用 定义 几个参数 Command:定义命令的接口。 ConcreteCommand:命令接口的实现对象。但不是真正实现,是通过接收者的功能来完成命令要执行的操作 Receiver&#x…

使用CSS的@media screen 规则为不同的屏幕尺寸设置不同的样式(响应式图片布局)

当你想要在不同的屏幕尺寸或设备上应用不同的CSS样式时,可以使用 media 规则,特别是 media screen 规则。这允许你根据不同的屏幕特性,如宽度、高度、方向等,为不同的屏幕尺寸设置不同的样式。 具体来说,media screen…

SQL地址门牌排序,字典序转为数字序

页面有一批地址数据查询,结果字符排序默认是字典序的,所以造成了门牌3号在30号之前,影响用户体验; id, road_code, road_name, address_fullname, address_name 102 10086 人民一路 北江省南海市西湖区人民一路3号 3号 103 10086…

bug复刻,解决方案---在改变div层级关系时,导致传参失败

问题描述: 在优化页面时,为了实现网页顶部遮挡效果(内容滚动,顶部导航栏不随着一起滚动,并且覆盖),做法是将内容都放在一个div里面,为这个新的div设置样式,margin-top w…