Docker安装MySQL

article/2025/9/27 3:38:23

目录

前言

一、拉取镜像

 二、查看镜像

 三、运行镜像

四、查看正在运行的容器

五、查看容器内部

六、修改mysql配置

七、重启mysql服务,使其配置生效

八、设置docker启动时启动mysql

九、重启mysql

十、授权远程访问

10.1 进入容器内部

 10.2 登陆mysql

10.3 选择数据库

10.4 查看用户连接情况

10.5 修改密码认证方式

 10.6 退出容器


前言

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

本文为了方便,我们直接通过yum方式安装。所以,我们在安装之前需要电脑可以联网,不然我们这种方式是安装不了的。

当然,你也可以自行下载mysql镜像,然后再通过 docker 安装,不过这不在本文的讨论范围。

一、拉取镜像

# 拉取镜像
docker pull mysql# 或者
docker pull mysql:latest# 以上两个命令是一致的,默认拉取的就是 latest 版本的# 我们还可以用下面的命令来查看可用版本:
docker search mysql

 二、查看镜像

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

docker images

 三、运行镜像

docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

命令解决:

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

--name mysql:创建的容器名称

--restart=always:总是跟随docker启动

--privileged=true:获取宿主机root权限
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456

-d mysql:latest:后台运行mysql容器,版本是latest。

四、查看正在运行的容器

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

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

docker logs -f mysql

 可能会发现:

Failed to access directory for --secure-file-priv. Please make sure that dir

 此时如果我们执行第五步也会报错:

Error response from daemon: Container xxx is restarting, wait until the cont。。。

此时我们需要执行第六步。 

五、查看容器内部

docker exec -it mysql /bin/bash

六、修改mysql配置

 创建mysql配置文件:my.cnf

cd /usr/local/mysqlllcd confvi my.cnf

在 my.cnf 文件中 写入如下内容:

[client]

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

[mysqld]

# 设置东八区时区
default-time_zone = '+8:00'

# 设置密码验证规则,default_authentication_plugin参数已被废弃

# 改为authentication_policy

#default_authentication_plugin=mysql_native_password
authentication_policy=mysql_native_password

# 限制导入和导出的数据目录
# 为空,不限制导入到处的数据目录;
# 指定目录,必须从该目录导入到处,且MySQL不会自动创建该目录;
# 为NULL,禁止导入与导出功能
#secure_file_priv=/var/lib/mysql
secure_file_priv=

init_connect='SET collation_connection = utf8mb4_0900_ai_ci'

init_connect='SET NAMES utf8mb4'

character-set-server=utf8mb4

collation-server=utf8mb4_0900_ai_ci

skip-character-set-client-handshake

skip-name-resolve

默认的鉴权方式,我们修改为mysql_native_password,不然的话连接会报错。因为在mysql8以后的默认加密方式改变了,由 mysql_native_password 改为了caching_sha2_password。这种加密凡是在客户端无法访问,客户端支持的是mysql_native_password 。我们先进行第七步。

七、重启mysql服务,使其配置生效

docker restart mysql

八、设置docker启动时启动mysql

docker update mysql --restart=always

九、重启mysql

docker restart mysql

十、授权远程访问

不进行授权直接登陆的话会报错的,如图:

错误内容:

Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
  Connection refused: connect
  Connection refused: connect

10.1 进入容器内部

docker exec -it mysql /bin/bash

 10.2 登陆mysql

mysql -u root -p

 此时我们使用mysql客户端连接服务器是失败的,因为默认的root不具有远程连接的权限。

 上面的密码不要输入,直接回车进入。

10.3 选择数据库

show databases;
use mysql;

不要忘记最后的分号。

10.4 查看用户连接情况

select host, user, plugin,  authentication_string, password_expired from user;

我们看到root用户只有localhost的连接权限。

10.5 修改密码认证方式

ALTER USER root@'%' IDENTIFIED WITH mysql_native_password BY '123456';ALTER USER root@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';-- 刷新权限
FLUSH PRIVILEGES;

 10.6 退出容器

exit

先输入exit退出mysql,再输入exit退出容器。

此时,我们通过客户端工具就可以连接mysql了。


http://chatgpt.dhexx.cn/article/dwLOdNag.shtml

相关文章

docker安装rabbitmq

1.准备 需要安装好docker环境,可以阅读文章在Centos和Redhat上安装Docker_小帅虎丶丿的博客-CSDN博客 学习如何安装docker 需要安装docker-compose,了解yaml格式文件的编写以及一些常用的docker-compose的属性,可以参考文章 需要会使用dockerfile构建…

Docker中安装宝塔

1、docker拉取ubuntu系统 docker pull ubuntu 2、运行容器 docker run -i -t -d --name bt -p 2000:20 -p 2100:21 -p 8000:80 -p 4430:443 -p 8880:888 -p 8888:8888 --privilegedtrue -v /d/baota:/www/wwwroot ubuntu -v后的/d/baota代表本地D盘的baota目录与ubuntu系统…

Win7安装Docker

Win7安装Docker 下载安装包为:DockerToolbox.exe下载docker的win安装工具 如果是win10系统,可以直接去docker官网下载docker for windows;如果不是,为了避免乱七八糟的错误,建议直接去阿里云下载老一点的版本&#xf…

Docker下安装Redis超详细步骤

查看需要安装的镜像版本 dockerHub官网地址 搜索reids 2.点击标签 3.查看需要的版本 在安装好docker的linux中执行命令 拉取镜像 //拉取最新版本 docker pull redis //拉取指定版本 docker pull redis:6.0.8查看是否拉取成功 docker images去redis官网下载redis,然后在…

【docker】Mac M1版本下载安装

文章目录 docker简介为什么使用dockerdocker Mac系统M1安装M1版本下载地址 配置国内加速镜像检查是否安装成功总结 docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux…

Windows10下载安装docker

Docker 简介 Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。 Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。 因此,Docker 必须部署在 Linux…

windows下Docker的下载与安装

一、下载 1、下载地址:docker下载 选择适合自己操作系统的 2、下载完毕之后,双击安装包进⾏安装即可。 3、打开docker,一般会弹出下面的弹窗点击链接,按照网页提示依次进行操作。 下载完成后,运行上一步中下载的…

docker下载安装

1. 安装docker 离线安装路径: https://download.docker.com/linux/static/stable/x86_64/ 下载:docker-18.06.3-ce.tgz 使用ftp上传文件到服务器 解压文件: tar -zxvf docker-18.06.3-ce.tgz 复制docker文件:cp docker/* /usr/b…

【Docker】Docker下载与安装

目录 零、文章简介 一、Docker介绍 二、Docker安装 2-1、使用Boot2Docker安装 2-1-1、安装 2-1-2、初始化 2-1-3、初始化失败:解决? 2-1-4、小结和检测 2-2、Docker Toolbox 2-2-1、下载 2-2-2、安装 2-2-3、初始化 2-2-4、初始化后的样子 …

Docker 下载安装使用(简单教程)

虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间互相隔离。 安装Docekr https://docs.docker.com/engine/install/fedora/ Docker下载地址 1、卸载linux服务器中旧版本的docker(不管有没…

uniapp中app分享小程序方法

在uniapp中只需要调用uni.share这个api就可以发起app中分享到小程序,其中id需要绑定小程序管理后台中的id。 但是很多时候会报[share:-3]这个错误,官方给出的解释是:‘发送失败’,后来我多次尝试后发现,we…

uniapp 微信小程序分享到好友 朋友圈

维信小程序分享到朋友圈 只支持安卓部分机型 点击头部分享 onLoad: function() {wx.showShareMenu({withShareTicket: true,menus: ["shareAppMessage", "shareTimeline"]})}, 通过按钮分享 <button open-type"share" class"share&qu…

微信小程序、app之间的跳转

1.微信小程序 --> 微信小程序&#xff08;之前有须为同一公众号下的小程序这一限制&#xff0c;现在可随意跳转&#xff09; 首先说一下到另一个小程序需要的东西&#xff1a; 跳转目标小程序的APPID 使用navigator组件或者微信小程序API&#xff08;wx.navigateToMiniPro…

uniapp分享微信提示由于不支持的分享类型无法分享到微信,App分享为微信小程序方法,由于不支持的分享类型无法分享到微信,由于应用和小程序未绑定在同意微信开放平台账号,无法分享到微信.

文章目录 由于不支持的分享类型无法分享到微信(解决)由于应用和小程序未绑定在同意微信开放平台账号&#xff0c;无法分享到微信(解决)share:fail [Share微信分享:-3]Unable to send, https://ask.dcloud.net.cn/article/287 在使用uniapp开发App分享微信&#xff0c;提示 由于…

uniapp app分享功能微信小程序的分享

小程序端和app端分享html <!-- #ifdef APP-PLUS --> <view class"goodsMenu" click"appShare"><view class"menuIcon"><image src"/package/static/mall/goodsShare.png" mode""></image>&l…

uniapp:APP跳转小程序

1、manifest.json勾选分享模块&#xff0c;填入APPID 2、登录微信开放平台微信开放平台&#xff0c;申请移动应用&#xff0c;并且将移动应用关联到需要跳转到的小程序。 这个步骤由后台操作完成&#xff0c;我这里没有记录。需要给后台提供APK的签名&#xff0c;查看获取签名的…

uni-app分享小程序页面

uni-app的小程序页面默认是不可分享的&#xff0c;点击页面右上角按钮进行分享时会提示&#xff1a;“当前页面不可转发/当前页面不可分享” 配置 打开项目的manifest.json文件&#xff0c;在“App模块配置”项的“Share(分享)”下&#xff0c;勾选“微信分享”&#xff1a; 在…

uni-app分享小程序卡片给微信好友

一、前言 最近有这样一个需求&#xff0c;使用APP将一个小程序的页面分享给微信好友&#xff0c;起初一脸问号&#xff0c;APP分享小程序的页面&#xff0c;两个不相干的东西怎么关联分享&#xff1f;于是乎抱着实现不了的心态在网上看帖子&#xff0c;最后终于在uni-app文档和…

App分享微信小程序功能介绍和业务方案分析

今天微信小程序新增了支持跳转App的功能&#xff0c;算是一次比较大的突破&#xff0c;我也第一时间体验了一下该功能&#xff0c;App和小程序之间的跳转还是比较灵活的。 屏幕快照 2018-01-25 下午7.05.46.png 小程序支持打开移动应用 逻辑图 因为需要用户主动触发才能打开 …

iOS从APP中分享出小程序详解

移动应用分享功能支持小程序类型分享,要求发起分享的App与小程序属于同一微信开放平台帐号。支持分享小程序类型消息至好友会话,不支持“分享至朋友圈”及“收藏”。 微信客户端版本要求:6.5.6及以上微信客户端版本。为兼容旧版本客户端,若客户端版本低于6.5.6,小程序类型…