docker 安装mysql 实战_Docker(部署常见应用):Docker安装MySql完整教程、实操

news/2024/7/3 14:35:21

镜像官网可以所有应用,选择安装环境:会给出安装命令,例如:docker pull redis默认拉取最新的版本(指定版本:docker pull redis:5.0.8)

一、拉取mysql官方镜像,镜像更多解释

1、登录docker 镜像官网搜索mysql,找到制定的版本拉去,这里使用mysql5.7.30

docker pull mysql:5.7.30

43f47725e702694798ad16d15ff5bff2.png

2、查看docker的镜像

docker images

35f7fe3f643e66bea68a364ace876e9c.png

二、根据镜像创建mysql容器

1、 创建容器内在本地的映射文件夹

mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf

2、初始化mysql的配置文件*.cnf,在/root/mysql/conf

touch/root/mysql/conf/my.cnf

3、创建docker容器并启动,将数据,日志,配置文件映射到本机

创建容器返回container的id

docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/var/log/mysql -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.30

-d: 后台运行容器,也可以使用镜像id

-p 将容器的端口映射到本机的端口

-v 将主机目录挂载到容器的目录

-e 设置参数  MYSQL_ROOT_PASSWORD 指定登录密码

cd777b07ca210b2f1555b60e8fe6b9fe.png

启动容器两种方式

a、指定container的id

docker start f46be2f4e1c7

b、指定容器的名字

docker start mysql

4、查看服务是否启动

docker ps

e86d3a460ac982af39bedd872cb37fa3.png

5、登录docker容器,登录mysql

docker exec -it f46be2f4e1c7 /bin/bash

f46be2f4e1c7 是上面docker ps中展示容器id

4ed37d6e4a3d43b04c33d893e6383bf4.png

6、查看文件是否本持久化到本地

ls /root/mysql/data/

或者

cd /root/mysql/data/

ls

3c28bd8e84e8c4a0bed55128621a4b92.png

两种异常情况:

1、 客户端登录链接异常(一种权限不足下面为解决方案、另一种修改密码版本不同方式不同)

#登录docker容器(方式参考上方文档)后登录mysql

mysql-uroot -proot

#修改登录者的权限

GRANT ALL ON*.* TO 'root'@'%';

#刷新命令生效

flush privileges;

2、JDBC启动报链接异常,链接异常是因为缺少必要的参数,根据以下参数进行检测即可。

jdbc:mysql://127.0.0.1:3306/cloud_user?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&autoReconnect=true

//北京时间==东八区时间!=北京当地时间 serverTimezone=GMT%2B8

//或者使用上海时间serverTimezone=Asia/Shanghai

拓展文档:

mysql 5.8以上版本有问题可以参考:


http://www.niftyadmin.cn/n/1930043.html

相关文章

sublime mysql插件_在sublime 中添加插件

如果你的是sublime text3 ,则复制sublime text3中的代码:import urllib.request,os,hashlib; h 2deb499853c4371624f5a07e27c334aa bf8c4e67d14fb0525ba4f89698a6d7e1; pf Package Control.sublime-package; ipp sublime.installed_packages_path();…

23种设计模式 原型设计模式

原型模式的定义:原型模式:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。 原型模式的结构:原型模式主要包含3个角色:(1)Prototype(抽象原型类):声明克隆方…

23种设计模式 中介设计模式

https://github.com/yzmaodeng/java-keypointknowledge/commit/bf15dc2c7c49df34dbef0a550ace857dd38669aa中介者模式 定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独…

mysql显示缺半边_Mysql随笔

## 数据库操作 ##1.创建数据库和数据库中的表create database [if not exists]数据库名 [default character set 字符编码(集)]加上中括号是代表不是必选create database if not exists shcool defadult charset utf8;use 数据库名; //选中所需的数据库use school;…

myeclipse ssm mysql_基于jsp+mysql+Spring+mybatis的SSM客户关系管理系统

运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。IDE环境: Eclipse,Myeclipse,IDEA都可以tomcat环境: Tomcat 7.x,8.x,9.x版本均可,理论上Tomcat版本不是太老都可以。硬件环境: windows …

python定义不了类_在python类定义中找不到小部分

我的代码快完成了,但我还是搞不懂一件事。问题是:Write a class named Car that has the following data attributes:__year_model__make__speedThe Car class should have an __init__ method that accepted the cars year model and make as arguments…

linux centos7中使用service iptables stop 显示not loaded

centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可: sudo systemctl stop firewalld.service && sudo systemctl disable fi…

python corr()用的是什么方法_用Python处理Args的3种方法

欢迎关注 “小白玩转Python”,发现更多 “有趣”1. sys 模块Python 中的 sys 模块具有 argv 功能。当通过终端触发 main.py 的执行时,此功能将返回提供给 main.py 的所有命令行参数的列表。除了其他参数之外,返回列表中的第一个元素是 main.p…