【Docker】Docker中安装MySQL数据库

这篇具有很好参考价值的文章主要介绍了【Docker】Docker中安装MySQL数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情)

1. 前言

虽然 docker 安装 mysql 不是一个很好的方案,但是为了个人使用方便,使用 docker 安装 mysql 还是没什么问题的。

且安装时把主机文件挂载到容器上,保证了 mysql 的持久化,对开发和测试也很友好。

2. Docker中安装MySQL服务

以下以mysql5.7版本为例,mysql8.0的步骤也是一样的

2.1. 查看可用的MySQL版本

# 搜索镜像
docker search mysql

2.2. 拉取MySQL镜像

# 拉取镜像
docker pull mysql:5.7

# 或者
docker pull mysql:latest

2.3. 查看本地镜像

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

docker images

2.4. 运行容器

MySQL是常用的关系型数据库,一般的,希望它能永久的保存数据,哪怕是当容器被删除了数据也不要删除,此时就需要把主机文件夹挂载到容器上,这样可以保证即使容器删除后新建的MySQL容器可以使用之前的数据。

  • 先准备好本地的目录
mkdir -p /mydata/mysql/log
mkdir -p /mydata/mysql/data
mkdir -p /mydata/mysql/conf
  • 挂载目录,启动容器
# Docker启动MySQL容器
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

-p 3306:3306:指定宿主机端口与容器端口映射关系

-v:挂载主机文件夹 /mydata/mysql/data 到 容器/var/lib/mysq 挂载点

-e:指定容器需要的变量

-it:表示交互式终端;

-d:后台运行mysql容器

2.5. 查看正在运行的容器

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

这个时候如果显示的是up状态,那就是启动成功了。如果是restarting,说明是有问题的。我们可以查看日志:

docker logs -f mysql

2.6. 查看容器内部

docker exec -it mysql /bin/bash

2.7. 授权root远程登录

  • 进入容器
docker exec -it mysql /bin/bash
  • 登录mysql
mysql -uroot -p
  • 查看用户、插件
mysql> use mysql;
Database changed
mysql> select host,user,plugin from user;
+-----------+---------------+-----------------------+
| host      | user          | plugin                |
+-----------+---------------+-----------------------+
| localhost | root          | mysql_native_password |
| localhost | mysql.session | mysql_native_password |
| localhost | mysql.sys     | mysql_native_password |
| %         | root          | mysql_native_password |
+-----------+---------------+-----------------------+
4 rows in set (0.00 sec)

mysql> 

查看结果,不仅仅看到了root@'localhost'也看到了root@'%'root@'%'就是允许远程登录的账号,跟我们预期的结果还不一样,只能说mysql的docker镜像做的挺良心的,知道docker更多的是用于开发测试,把root的远程登录直接出厂设置了。

  • 直接退出吧

2.8. 在宿主机连接到容器的MySQL

# 用命令行测试端口连通性
telnet localhost 3306
# 查看能不能连接上MySQL
mysql -u root -P 3306 -h 127.0.0.1 -proot
# 查看容器日志
docker logs -f mysql

2.9. 用Navicat连接容器的MySQL

  • 配置连接的参数

【Docker】Docker中安装MySQL数据库,Docker,mysql,docker,mysql,数据库

  • 连接上了

【Docker】Docker中安装MySQL数据库,Docker,mysql,docker,mysql,数据库

3. 如果是MySQL8.0可能需要执行

不得不说,mysql的docker镜像很人性化,不仅默认出产设置帮我们取消了安全限制,也允许root远程登录,爆赞、爆赞、爆赞。所以这一步其实什么都不需要做,如果有问题才继续看后面。

注:docker安装mysql一般用于开发测试,所以默认出厂设置帮用户做了一些设置。但是Linux下安装的mysql8.0默认是有一些安全限制和限制root远程登录。

3.1. 授权root远程登录

  • 进入mysql容器
docker exec -it mysql /bin/bash
  • 登录mysql
mysql -uroot -p
mysql> use mysql
Database changed
mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)

mysql>

可以看到出厂就创建了root@'%'账号。如果没有就自行创建下把

  • 创建root@'%'账号
mysql> create user root@'%' identified by 'root';
Query OK, 0 rows affected (0.01 sec)

mysql>
  • 授权所有权限给root@'%'账号
mysql> grant all on *.* to root@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> 

3.2. 取消密码强度限制

  • 卸载"验证密码"组件
mysql> UNINSTALL COMPONENT 'file://component_validate_password';
ERROR 3537 (HY000): Component specified by URN 'file://component_validate_password' to unload has not been loaded before.
mysql>

docker的mysql镜像默认没有安装

  • 卸载"验证密码"插件
mysql> UNINSTALL PLUGIN validate_password;
ERROR 1305 (42000): PLUGIN validate_password does not exist
mysql> 

docker的mysql镜像默认没有安装

4. 参考资料

在生产环境安装MySQL 8.0文章来源地址https://www.toymoban.com/news/detail-620232.html

到了这里,关于【Docker】Docker中安装MySQL数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker 容器搭建mysql 集群(主从数据库)

    目录 1.背景         2.设备及软件版本 3.开始搭建(这里不介绍安装docker及mysql) 3.1创建主数据库容器(master) 3.2查看容器是否创建成功 3.3进入修改容器下的/etc/my.cnf文件 3.3.1先拷贝my.cnf到容器外修改完再覆盖容器原来的my.cnf文件 3.4重启mysql容器使配置文件生效 3.5查看是否

    2024年02月08日
    浏览(84)
  • Mysql Docker 容器重启后数据库数据丢失分析

    项目复用nacos的mysql数据库且msyql容器已存在,之前已新建好数据库并插入数据。本次需要更新数据库表结构和数据。重启myql导致数据库数据丢失。 另外,本次事故是昨天发生未及时记录,日志不够详细。 本次需要更新数据库表结构和数据,通过dbviewer操作失败报 异常,部分

    2024年02月01日
    浏览(37)
  • 基于docker搭建MySql主从数据库(详细步骤)

    在 Linux 中建立对应文件夹,用于存放MySql数据库相关,文件夹路径: /usr/local/software/mysql 。 在mysql文件下创建如下目录结构的文件:(3306为主数据库文件夹,笔者这里以对端口号来命名;3310为从数据库文件夹,3311同理,可依次往下) 上传 my.cnf 文件到 conf 文件夹下 以下是

    2024年02月09日
    浏览(35)
  • 在 Docker 中安装 Oracle 数据库

    在这篇博客中,我们将探讨如何使用 Docker 容器轻松地安装和运行 Oracle 数据库。Docker 提供了一种简便的方式,通过容器化,我们可以在任何支持 Docker 的环境中快速部署 Oracle 数据库。 步骤 1:安装 Docker 首先,确保你的系统上已经安装了 Docker。你可以根据官方文档(Docker

    2024年02月04日
    浏览(36)
  • 如何在Linux用Docker部署MySQL数据库并远程访问本地数据库

    本文主要介绍如何使用Docker部署MySQL,并结合cpolar内网穿透工具实现远程访问本地数据库。 Docker提供了一个轻量级的容器化解决方案,可以更好的简化数据库的部署过程。让创建和管理MySQL数据库变得更简单快捷。下面就来分享一下具体的部署过程,并提出一些需要注意的事

    2024年03月10日
    浏览(25)
  • docker安装mysql、clickhouse、oracle等各种数据库汇总

    1:docker 安装mongo数据库并使用 官网:https://www.mongodb.com/docs/manual/ mongo shell教程1:http://c.biancheng.net/mongodb2/connection.html 安装1 :https://www.zhihu.com/question/54602953/answer/3047452434?utm_id=0 安装2:https://www.duidaima.com/Group/Topic/ArchitecturedDesign/9182 使用驱动进行java开发:https://mongodb.github.

    2024年02月10日
    浏览(37)
  • Docker Compose V2 安装常用数据库MySQL+Mongo

    书接上篇:Docker V24 及 Docker Compose V2 的安装及使用 本篇操作都在 centos8 虚拟机 devops01 中进行,并都归属网络:devopsnetwork 主要增加对容器中 数据文件,日志,配置,网络,时区,端口映射,密码 的配置,更贴合生产实际使用 目录 /app/mysql 中创建 compose.yml 并运行 指定 mysql

    2024年02月08日
    浏览(26)
  • 导出docker MySQL中的数据库写一个shell 脚本

    安装命令 mysqldump 编辑脚本内容 export_mysql.sh 执行以下命令给脚本添加执行权限:

    2024年02月21日
    浏览(35)
  • 在docker中安装使用达梦数据库

    关于在docker中安装达梦数据库,达梦官方网站其实是有提供安装使用方法的,但可能还是有朋友不会,这里将在原文基础上简单扩充下。 注意:docker容器中,数据库安装后没有创建服务的脚本,只有bin、bin2、conf、data、log五个目录 软硬件 版本 终端 X86-64 架构 Docker 2022 年 8

    2024年02月08日
    浏览(49)
  • 1.在CentOS中安装Mysql数据库

    1.下载Mysql社区版 (备注说明Windows下载,则需要上传至/home/mysql/目录下) 登录Mysql官网:MySQL     点击“DOWNLOADS” 选择“MySQL Community (GPL) Downloads” 选择社区服务器版,即点击“MySQL Community Server” 选择对应的版本,本文是计划安装在CentOS上,所以,选择通用版【小伙伴们,可

    2023年04月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包