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

标签:Docker,安装,MySQL8
0
投稿

猜你喜欢

  • Python实用库 PrettyTable 学习笔记

    2021-07-02 17:36:22
  • Linux下C连接MySQL出现错误解决一例

    2008-12-29 13:17:00
  • Opencv实现倾斜图片转正示例

    2022-05-02 14:28:08
  • Python获取文件所在目录和文件名的方法

    2021-04-07 05:44:35
  • 如何利用pyecharts画好看的饼状图

    2021-04-19 09:07:19
  • 原生Js与jquery的多组处理, 仅展开一个区块的折叠效果

    2024-04-17 10:06:48
  • Python即时网络爬虫项目启动说明详解

    2022-11-29 18:09:24
  • Python类的动态绑定实现原理

    2022-05-02 00:52:03
  • 分析python请求数据

    2023-09-26 08:46:08
  • 给展示性图片增加提示工具条(黑白效果)

    2007-10-20 14:21:00
  • CSS灵活运行注释带来的益处

    2008-04-21 13:51:00
  • MySql数据库时间序列间隔查询方式

    2024-01-27 15:23:03
  • 将python字符串转化成长表达式的函数eval实例

    2022-08-25 18:27:23
  • Persits AspJpeg 1.8+ 轻松实现透明文字去锯齿水印

    2009-03-20 14:03:00
  • Python 在局部变量域中执行代码

    2023-06-12 04:57:15
  • Thinkphp 框架基础之源码获取、环境要求与目录结构分析

    2023-06-19 07:20:01
  • Numpy np.array()函数使用方法指南

    2023-05-23 09:33:37
  • 三分钟时间教你用Python绘制春联

    2023-11-06 00:26:08
  • Pytorch dataloader在加载最后一个batch时卡死的解决

    2022-09-15 06:50:34
  • ASP.NET中MD5和SHA1密码保护算法的使用

    2007-08-24 09:18:00
  • asp之家 网络编程 m.aspxhome.com