关键词:
文章目录
使用docker安装MySQL
为什么使用docker安装MySQL
在软件开发中,由于项目需要,以及新技术的学习,这要求我们需要在自己的电脑中安装众多的软件,而其中相当大一部分的软件,其实我们在平常是根本不去使用的,但是不使用,不代表了不启动,亦不代表不会拖慢系统的反应速度。
实际上我们在安装了众多的软件后,由于其不可避免的会在操作系统中写入很多软件信息,并且相当大一部分的软件,往往是随着系统自启动的,这致使我们的系统使用的越久,系统的反应速度越慢,安装的软件越多,系统的反应速度也会越慢,而安装的这些软件中,其中绝大多数是在平常的开发中根本使用不到的,因而为了避免系统资源不必要的浪费,这里推荐使用docker
开发软件。
而在这里,我们是使用docker
安装MySQL
。
使用docker安装MySQL的好处
使用docker
安装MySQL
,它的优点主要如下:
- 不会在系统中写入文件,因而不会使系统臃肿
- 不会软件自启,因而不会消耗过多的系统资源
- 软件升级,迁移方便
- 修改软件配置简单
软件版本与文档
操作系统
CentOS-7
MySQL
MySQL-5.7
DockerHub-MySQL
MySQL开发文档
安装MySQL
安装脚本
由于docker
中对容器的使用主要是通过命令行的方式进行,而命令行,我们又可以写入Linux
系统的Shell
脚本中,因而为了日后维护方便,这里推荐大家通过Shell
脚本来维护自己安装的软件。
通过Shell
安装MySQL
的脚本如下:
#!/bin/bash
cur_dir=`pwd`
docker stop mysql
docker rm mysql
docker run --name mysql -v $cur_dir/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 --default-authentication-plugin=mysql_native_password --lower-case-table-names=1
说明
pwd
表示的是打印当前文件路径,而该路径赋给cur_dir
,通过-v $cur_dir/data:/var/lib/mysql
中的$cur_dir/data
,表示将容器中的MySQL
数据库文件挂载到当前路径的data
文件夹下。由于在Linux
系统中,文件路径不存在,系统会自动创建的特性,因而我们不用去专门创建data
文件夹,该文件夹会在MySQL
容器创建时,自动创建。
-e MYSQL_ROOT_PASSWORD=root
表示设置当前的系统中的环境,此处的环境设置的是MySQL
的密码,此处我们的密码设置为root
。
default-authentication-plugin=mysql_native_password
,表示让MySQL
允许远程访问。
docker stop mysql
与docker rm mysql
此处是docker中停止容器并删除容器的指令,当容器本身不存在时,控制台只会进行相应的提示,而并非错误信息,是不影响使用的。
--lower-case-table-names=1
表示让MySQL
软件忽略数据表名的大小写。
注意事项
这里尤为需要注意的是,在MySQL
中,由于操作系统的不同,MySQL
的配置亦会出现相应的不同。这里我们以上面的lower_case_table_names
为例来进行说明:
lower_case_table_names属性
属性 | 值 |
---|---|
命令行 | --lower-case-table-names[=#] |
系统参数 | lower_case_table_names |
作用域 | 全局 |
动态 | 否 |
SET_VAR 提示应用 | 否 |
类型 | Integer |
默认值 | 0 |
最小值 | 0 |
最大值 | 2 |
在其官方的开发文档中有如下一句话需要我们特别注意:
On Windows the default value is 1. On macOS, the default value is 2.
On Linux, a value of 2 is not supported; the server forces the value
to 0 instead.
它们的意思是在Windows
与苹果操作系统中,其默认值为1
,在其它操作系统中,其默认值为2
,而在Linux
系统中,其默认值2
并不支持,因而此处选择用0
来代替。
最后再来解释下lower_case_table_names
不同值的含义,如下:
如果设置为0,表名将按指定方式存储,并且比较区分大小写。如果设置为1,表名将以小写形式存储在磁盘上,并且比较不区分大小写。如果设置为2,则表名按给定格式存储,但以小写形式进行比较。此选项还适用于数据库名称和表别名。有关其他详细信息,请参阅第9.2.3节“标识符区分大小写”。
而不注意此处的人,免不了要踩很多坑。
如何在docker中安装mysql数据库(代码片段)
1、Docker环境视频教程:https://www.bilibili.com/video/BV1xv4y1S7kA2、搜索镜像https://hub.docker.com/网站搜索MySQL,确定其安装版本,这里安装8.0.31版;3、拉取镜像[root@localhost~]#dockerpullmysql:8.0.318.0.3 查看详情
在windowsdocker中安装mysql(代码片段)
本文的前提是本地Docker环境已经配置成功,参考Windows10安装Docker并使用私钥连接AWSEC21.参考资料https://dev.mysql.com/doc/refman/8.0/en/grant.htmlhttps://www.jeffgeerling.com/blog/2017/how-fix-host-1721801-not-allowed-connect-mysql-doc 查看详情
centos7.4中安装docker(代码片段)
#!/bin/sh#安装docker#在docker中安装mysql#解决了docker容器中无法输入中文的问题##########################安装docker#更新源yum-yupdate#卸载旧版本(如果安装过旧版本的话)sudoyumremovedockerdocker-commondocker-selinuxdocker-engine#安装需要的软件包,yum-util 查看详情
在docker中安装并修改mysql中的my.cnf配置文件(代码片段)
...能的合理利用。本文共分为三个方面进行讲述:一、Docker安装MySQL查看mysql镜像 sudodockersearchmy 查看详情
阿里云服务器使用docker安装mysql(代码片段)
前言上一篇文章中,我们已经在阿里云服务器中安装了docker,这篇我们将继续使用docker在云主机中安装mysql。如果你对docker中的命令不了解,那也没有关系,文中使用到的命令我都会带上一点注释信息的。其实docker中安... 查看详情
shdebian-在debianjessie中安装docker(代码片段)
docker中安装elasticsearch(代码片段)
1、更改docker镜像仓库#这个网上有很多,我也是在网上找的,或者自己去阿里云申请vi/etc/docker/daemon.json"registry-mirrors":["http://hub-mirror.c.163.com"]#重启dockersystemctlrestartdocker.service2、可以先查看有哪些容器了dockerima 查看详情
sh在docker中安装prometheus和grafana(代码片段)
在centos中安装docker(代码片段)
概述Docker是一款使用Golang开发的开源容器引擎,我们可以使用Docker将自己的应用和相关依赖进行打包,实现在不同服务器上进行快速部署,而不需要再更多关注部署环境的差异性。结合kubernete我们可以更好的对Docker容器进行编排... 查看详情
在docker容器中安装vim(代码片段)
在容器中发现没vim,安装时apt-getinstallvim提示 Readingpackagelists...Done Buildingdependencytree Readingstateinformation 查看详情
docker中安装rabbitmq并启用插件(代码片段)
1.获取rabbitmq镜像,注意获取镜像的时候要获取management,不要获取last版本,management版本才是带有管理界面的,结果如下[email protected]:/usr/local/src#dockersearchrabbitmq:managementNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDmacintoshplus/rabbi 查看详情
在centos中安装docker(代码片段)
在CentOS中安装DockerDocker官方安装文档InstallDockerEngineonCentOS整理后1.卸载老版本Docker(系统未安装过Docker,可以不用操作这步)sudoyumremovedocker\\ docker-client\\ dock... 查看详情
如何在docker容器中安装rabbitmq(代码片段)
1、Docker环境视频教程:https://www.bilibili.com/video/BV1xv4y1S7kA/2、搜索镜像https://hub.docker.com/网站搜索rabbitmq,确定其安装版本,这里安装rabbitmq:3.8.12-management版,带“-management”版本的Rabbit含有Web管理界 查看详情
docker中安装ssh(代码片段)
一些比较简版的docker镜像中,是默认没有安装ssh的,当我们有这个需求的时候,需要为它安装,具体步骤如下:一、使用yum安装yum-yinstallopensslopenssh-serveropenssh-clients二、启动注意:正常情况我们是要使用下... 查看详情
ubuntu中安装jenkins,基于docker运行jenkins(代码片段)
本文是在ubuntu环境下安装jenkins,jenkins运行在docker容器中,至于docker如何安装,本文不再描述,大家可以上网查询下,如何安装docker,下面先放上一个使用jenkins自动部署原理图片(图片是网上找的,感谢原创分享) 下面... 查看详情
linux环境下docker中安装redis--整合springboot(代码片段)
Linux环境下docker中安装Redis--整合springboot一:安装流程二:Redis类型常用命令三:springBoot整合redis一:安装流程1.搜索镜像源dockersearchredis2.下载最新版redisdockerpulldocker.io/redis3.下载成功后可以查看其信息dockerimages4.运... 查看详情
linux环境下docker中安装redis--整合springboot(代码片段)
Linux环境下docker中安装Redis--整合springboot一:安装流程二:Redis类型常用命令三:springBoot整合redis一:安装流程1.搜索镜像源dockersearchredis2.下载最新版redisdockerpulldocker.io/redis3.下载成功后可以查看其信息dockerimages4.运... 查看详情
win10子系统ubuntu中安装docker(代码片段)
目录一、按照常规步骤安装docker二、问题一:ubuntu默认使用了WSL而不是WSL2三、问题二:未打开windows下DockerDesktop的TLS开关四、问题三: CannotconnecttotheDockerdaemonattcp://0.0.0.0:2375.Isthedockerdaemonrunning? 在上篇文... 查看详情