Docker安装MySQL8的方法步骤
作者:aaron428 发布时间:2024-01-21 12:26:40
一、下载镜像
docker Hub官网URL:https://hub.docker.com/_/mysql/
下载最新版本:docker pull mysql
下载指定版本:docker pull mysql:verison(8.0.11,8.0,8)
二、启动镜像
docker run -d --name mysql -v /data/datadir:/var/lib/mysql -v /etc/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:tag
没有/data/datadir路径或/etc/mysql/my.cnf配置文件,可以使用默认,不需挂载
三、用户授权
1、登录已启动的MySQL容器
docker exec -it mysql /bin/sh
2、使用启动命令中-e MYSQL_ROOT_PASSWORD设置的密码,登录MySQL
mysql -uroot -p
3、执行授权命令,此处已root用户为例
create user root@'192.168.0.2' identified by '123456';
grant all privileges on databas_name.* to root@'192.168.0.2';
ALTER USER 'root'@'192.168.0.2' IDENTIFIED WITH mysql_native_password BY '123456';
4、登录MySQL
mysql -h 192.168.0.2 -u root -p
四、启动命令中的环境变量
在启动mysql映像时,您可以通过在docker run命令行上传递一个或多个环境变量来调整MySQL实例的配置。请注意,如果您使用已包含数据库的数据目录启动容器,则下面的任何变量都不会产生任何影响:任何预先存在的数据库在容器启动时始终保持不变。
另请参阅https://dev.mysql.com/doc/refman/5.7/en/environment-variables.html以了解MySQL本身遵守的环境变量的文档(特别是像这样的变量MYSQL_HOST,这些变量在与此映像一起使用时会导致出现问题)。
MYSQL_ROOT_PASSWORD
该变量是强制性的,并指定将为MySQL root超级用户帐户设置的密码。在上面的例子中,它被设置为my-secret-pw。
MYSQL_DATABASE
此变量是可选的,并允许您指定要在映像启动时创建的数据库的名称。如果提供了用户/密码(见下文),那么该用户将被授予对该数据库的超级用户访问(对应于GRANT ALL)。
MYSQL_USER, MYSQL_PASSWORD
这些变量是可选的,可用于创建新用户并设置该用户的密码。该用户将被授予超级用户权限(见上文),该权限由MYSQL_DATABASE变量指定。这两个变量都是创建用户所必需的。
请注意,不需要使用此机制来创建超级用户的root用户,该用户默认情况下会使用MYSQL_ROOT_PASSWORD变量指定的密码创建。
MYSQL_ALLOW_EMPTY_PASSWORD
这是一个可选变量。设置为yes允许容器以root用户的空密码启动。注意:yes除非您真的知道您在做什么,否则不要将此变量设置为“不推荐”,因为这将使您的MySQL实例完全不受保护,从而允许任何人获得完整的超级用户访问权限。
MYSQL_RANDOM_ROOT_PASSWORD
这是一个可选变量。设置yes为为root用户(使用pwgen)生成随机初始密码。生成的root密码将打印到stdout(GENERATED ROOT PASSWORD: .....)。
MYSQL_ONETIME_PASSWORD
一旦初始化完成,将root用户(不是用户指定的用户MYSQL_USER)设置为已过期,强制首次登录时更改密码。注:该功能仅在MySQL 5.6+上受支持。在MySQL 5.5上使用此选项将在初始化期间引发相应的错误。
来源:http://blog.51cto.com/aaronsa/2133984


猜你喜欢
- Numpy在python中属于非常常用的包,无论是机器学习搭配pandas,还是数据可视化搭配pylab都是很正常的搭配。Numpynump
- 一、前言 🎈Beego Web框架应该是国内Go语言社区第一个框架,个人觉得十分适合新手入门Go Web。笔者半年前写过一篇搭建Beego项
- 首先,需要简单的了解一下爬虫,尽可能简单快速的上手,其次,需要了解的是百度的API的接口,搞定这个之后,最后,按照官方给出的demo,然后写
- 以下方案皆为引用,仅供参考。方案一:1.先声明一下,这种解决方法适用于任何版本的永久破解启动不了的情况(包括:2019版本的)2.下面直接切
- 我们在建立一个大型网站的时候,往往会包括很多相同的页面框架模式,甚至一些细节元素都是相同的。但令人困扰
- #!/usr/bin/perluse strict;use warnings;use re 'debug';sub test
- 要解决两个需求: 一个是从A页面跳到B页面,滚动到页面的任何地方; 第二个是在B页面内部点击某个元素,滚动到页面的任何地方; 怎么解决啊?很
- 一·逻辑运算符优先级:not>and>or符号名称描述and逻辑与运算当and的两边同时满足条件时,结果为
- 需求:根据country列的不同值,将内容分到不同sheet方法一:读取原Excel,根据country列将不同的内容放到不同的sheet,
- 1. 什么是phpDocumentor ? PHPDocumentor 是一个用PHP写的工具,对于有规范注释的php程序,它能够快速生成具
- 前言之前看过一遍的python教程,真的是自己看过一遍,python的程序能看懂,但是很难去实现。比较困难的自己实现一些代码,找工作原因,自
- 1.首先需要安装pandas, 安装的时候可能由依赖的包需要安装,根据运行时候的提示,缺少哪个库,就pip 安装哪个库。2.示例代码impo
- 问题是:输入一个数字,按照指定要求逆序输出该数字,很简单,下面是实现:#!usr/bin/env python#encoding:utf-8
- 上次说到的,使用如下代码保存矢量图时,放在外侧的图例往往显示不完整:import numpy as npimport matplotlib.
- 大家好,我们的git专题已经更新结束了,所以开始继续给大家写一点设计模式的内容。今天给大家介绍的设计模式非常简单,叫做iterator,也就
- 视频观看视频Pygame模块之pygame.draw本文将主要介绍Pygame的draw模块,主要内容翻译自pygame的官方文档pygam
- 1.figure语法及操作(1)figure语法说明figure(num=None, figsize=None, dpi=None, fac
- 目的:删除文件之后,如果目录为空,递归删除为空的目录。svr.dataDir指目录的最外层,递归删除目录的时候判断到这一层即可。eg:/Us
- 如 现有字符串 "[]aseabcd[12345]ddxabcdsx[]",要截取"abcd[" 和
- 经常有需要扫描目录,对文件做批量处理的需求,所以对目录处理这块做了下学习和总结。Python 中扫描目录有两种方法:os.listdir 和