文章编号:11392时间:2024-09-30人气:
Docker 是一个开源平台,用于开发、交付和运行应用程序。它允许您在容器中部署应用程序,这些容器是独立的执行环境。这可以帮助您轻松地创建和管理应用程序,而无需担心底层基础设施。本文将指导您下载 MySQL Docker 镜像并使用 Docker 容器部署 MySQL。
从 Docker Hub 下载 MySQL Docker 镜像。Docker Hub 是一个中心仓库,其中包含用于 Docker 的应用程序和服务映像。要下载 MySQL 镜像,请使用以下命令:
docker pull mysql/mysql-server
下载镜像后,您可以创建和运行一个 MySQL 容器。要创建容器,请使用以下命令:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql/mysql-server
容器运行后,您可以使用以下命令连接到它:
docker exec -it some
当尝试连接MySQL 8.x时,可能会遇到The server requested authentication method unknown to the client的错误。 这通常是由于MySQL 8.x升级后采用了新的密码验证方式caching_sha2_password,而您的PHP版本(假设在7.2以上)并不支持这种新方式。
解决此问题的步骤如下:
在部署 Docker 容器中的 MySQL 5.7 时,遵循以下步骤可以确保稳定和兼容性。 首先,从网易加速源拉取 MySQL 镜像,采用以下命令:bashdocker pull /google_containers/mysql-5_7:5.7.24接下来,重命名镜像:bashdocker rename mysql-5_7:5.7.24 mysql5_7创建容器并安装镜像:bashdocker run --name mysql-main -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password mysql5_7启动容器:bashdocker start mysql-main通过命令进入 MySQL 容器:bashdocker exec -it mysql-main bash在容器中,登录 MySQL:bashmysql -uroot -pyour_password设置远程授权,例如添加允许远程访问的规则:sqlGRANT ALL PRIVILEGES ON *.* TO user@% IDENTIFIED BY password;FLUSH PRIVILEGES;保存并退出 MySQL:bashexit为了解决 MySQL 查询大小写的问题,编辑容器内的配置文件:bashvi /etc/mysql/.d/在 `[mysqld]` 部分添加:inilower_case_table_names=1保存并退出编辑器。 重启 MySQL 容器:bashsudo docker restart mysql-main解决 MySQL 5.7 的查询兼容问题,这通常与版本特定的特性或修复有关,可能需要根据实际情况调整 MySQL 配置或升级容器镜像。 处理密码修改不兼容的问题,可能涉及配置文件的修改,确保与新版本的 MySQL 兼容。 启动 Docker 中的 MySQL 时,可以通过添加参数来定制容器的行为,例如:bashdocker run -d --name mysql-instance --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my_root_password mysql:5.7此参数 `-d` 表示后台运行,`--restart=always` 确保容器在意外终止后自动重启,`-p 3306:3306` 映射本地端口 3306 到容器的 3306 端口,`-e` 设置环境变量以配置 MySQL。 通过遵循上述步骤,可以确保在 Docker 中高效部署 MySQL 5.7,同时解决常见兼容性和配置问题。
为了部署Nacos并解决与容器中MySQL连接不上问题,需要遵循以下步骤和环境准备。 首先,确保已安装Docker。 若遇到下载卡顿,可尝试使用git下载或直接从GitHub页面下载zip压缩包。 解压后,文件列表包括基本组件。 接着,安装MySQL。 通过下载安装包并执行相应脚本新建数据库nacos,执行文件。 推荐使用Navicat进行操作。 打开并编辑文件,删除版本号后使用最新版本,并移除所有mysql节点内容以自定义MySQL配置。 解决连接问题前,需查看MySQL的IP地址及网络配置。 注意IPAddress和NetworkID。 若MySQL处于bridge网络,需在中添加networks配置。 确认配置文件env/位置,并进行相应修改以适配网络环境。 所有配置完成后,启动Nacos服务,验证服务是否成功运行。
推荐使用Dockerfile方式。
服务的管理使用的是supervisord, 因为dockerfile里只会有一个cmd生效,如果我想通过ssh去管理容器还要有mysql服务的启动起来 cmd的方式就无法实现,当然容器不需要以sshd的方式去管理,这些也都是看自己怎么去使用,比如说我想备份容器里的数据 我完全可以使用 –volumes-from <容器name> , 重启使用 docker restart <容器id>, 我个人也是使用ssh习惯了 所以依赖的镜像把ssh服务栽进去了。
# docker 版本:复制代码代码如下:[root@private_network mysql]# docker versionClient version: 1.6.0-rc5Client API version: 1.18Go version (client): go1.4.2Git commit (client): fc4825dOS/Arch (client): linux/amd64Server version: 1.6.0-rc5Server API version: 1.18Go version (server): go1.4.2Git commit (server): fc4825dOS/Arch (server): linux/amd64[/code]# 目录结构复制代码代码如下:mysql/|-- |-- create_mysql_ # mysql用户初始化脚本|-- Dockerfile|-- install_ # mysql服务安装脚本|-- # mysql服务配置文件|-- `-- # 服务管理工具配置文件# Dockerfile复制代码代码如下:# FROM: 依赖的镜像FROM ted1993/mysql:5.6.24#MAINTAINER: 个人信息MAINTAINER xuqiangqiang # RUN: 执行命令RUN yum -y install tar gcc-c++ supervisor ncurses-devel libtool bison bison-devel pwgenRUN mkdir -p /var/log/supervisor# ADD: 添加本地文件到容器中,如果是压缩包会在目标目录进行自动解压,如果只想添加文件可以使用 COPY命令ADD ./ /etc/ ./ /root/tools/ADD ./ /root/tools/ADD ./install_ /root/tools/ADD ./create_mysql_ /create_mysql_# WORKDIR: 当前的工作目录WORKDIR /root/tools/RUN sh install_ ./ /data/server/mysql-5.6.24/etc/ rm -rf /root/tools/mysql-5.6.24RUN rm -rf /root/tools/ rm -rf /root/tools/cmake-3.2.2RUN rm -rf /root/tools/# EXPOSE: 公开的端口,会暴露在外的端口EXPOSE 22 3306# CMD: 容器启动执行的命令 一个dockerfile只有一个cmd生效。
CMD [/usr/bin/supervisord]# 服务管理工具通过supervisord管理服务复制代码代码如下:[supervisord]nodaemon=true[program:mysqld]command=/etc/init.d/mysqld startnumprocs=1autostart=trueautorestart=true[program:sshd]command=/usr/sbin/sshd -Dnumprocs=1autostart=trueautorestart=true# install_复制代码代码如下:#!/bin/bashgrep ^mysql: /etc/passwd &> /dev/null || groupadd mysql && useradd -g mysql -s /sbin/nologin mysqlif [ ! -d cmake-3.2.2 ];thentar xzvf cmake-3.2.2./bootstrap && gmake && gmake install && cd [ ! -d mysql-5.6.24 ];thentar xzf mysql-5.6.24cmake \-DCMAKE_INSTALL_PREFIX=/data/server/mysql-5.6.24 \-DMYSQL_UNIX_ADDR=/tmp/ \-DMYSQL_DATADIR=/data/mysql-5.6.24/ \-DSYSCONFDIR=/data/server/mysql-5.6.24/etc/ \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DWITH_PERFSchema_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_EXTRA_CHARSETS=complex \-DENABLED_LOCAL_INFILE=1 \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_unicode_ci \-DWITH_DEBUG=0CPU_NUM=$(cat /proc/cpuinfo | grep processor | wc -l)if [ $CPU_NUM -gt 1 ];thenmake -j$CPU_NUMelsemakefimake installecho PATH=\$PATH:/data/server/mysql/bin >> /etc/profile && . /etc/profileln -s /data/server/mysql-5.6.24/ /data/server/mysqlrm -rf /etc/ -p /data/server/mysql-5.6.24/etc/mkdir -p /data/server/mysql/data/mkdir -p /data/log/mysql/chown -R mysql:mysql /data/server/mysql/chown -R mysql:mysql /data/server/mysql/data/chown -R mysql:mysql /data/log/mysql\cp -f /data/server/mysql/support-files/ /etc/init.d/mysqldsed -i s#^basedir=$#basedir=/data/server/mysql# /etc/init.d/mysqldsed -i s#^datadir=$#datadir=/data/server/mysql/data# /etc/init.d/mysqldchmod 755 /etc/init.d/mysqld/data/server/mysql/scripts/mysql_install_db --datadir=/data/server/mysql/data/ --basedir=/data/server/mysql --user=mysql# create_mysql_复制代码代码如下:#!/bin/bash/data/server/mysql/bin/mysqld_safe >> /dev/null 2>&1 &RET=1while [[ RET -ne 0 ]]; doecho => Waiting for confirmation of MySQL service startupsleep 5/data/server/mysql/bin/mysql -uroot -e status > /dev/null 2>&1RET=$?doneecho ============================MYSQL_PASS_INFO=============================== echo PASS_ROOT=${MYSQL_PASS:-$(pwgen -s 8 1)}PASS_DBA=${MYSQL_PASS:-$(pwgen -s 8 1)}echo echo => Creating MySQL root user with ${PASS_ROOT} passwordecho => Creating MySQL dba user with ${PASS_DBA} passwordecho /data/server/mysql/bin/mysql -uroot -e grant all privileges on *.* to dba@% identified by ${PASS_DBA};/data/server/mysql/bin/mysql -uroot -e update set password=PASSWORD(${PASS_ROOT}) where user=root and host=localhost;echo echo ===================================END=====================================echo echo => Done!echo echo echo ==============================REMOTE_MYSQL_PASSWORD=====================echo You can now connect to this MySQL Server using:echo echo mysql -udba -p${PASS_DBA} -h
大家好,本文将为您详细介绍如何使用 Docker 安装并运行 MySQL。 在开始之前,确保您已了解 Docker 的基本概念,包括镜像、容器和数据卷。 镜像是安装包,容器是通过镜像安装的虚拟环境,数据卷则用于存储容器内的数据。 首先,请确保已安装并启动 Docker。 推荐使用支持可视化的桌面端。 接下来,执行 Docker 命令以安装 MySQL。 若本地无相应镜像,Docker 将自动下载。 执行命令后,容器实例将基于镜像启动。 请查阅官方文档获取更多关于 Docker run 命令的说明。 对于使用 ARM 架构计算机的用户,若遇到不兼容问题,可以使用 --platform 选项指定平台类型,以找到兼容的镜像。 在容器列表中,您将看到名为 app-mysql 的容器已成功启动。 接下来,通过映射的端口连接 MySQL 客户端。 MySQL 客户端需自行安装,命令行工具或可视化工具均可。 macOS 用户推荐使用 Sequel Ace。 为了持久化数据,需将容器内的数据存储到宿主环境的文件系统。 通过 -v 选项实现文件系统映射。 例如,将容器中的 /var/lib/mysql 目录映射至名为 app-mysql 的数据卷。 此外,您还可以指定宿主环境的绝对路径,数据将保存在此路径下,但不会出现在数据卷列表中。 若需查看 Docker 支持的 MySQL 版本,可访问 Docker 官方页面并搜索 MySQL。 如无法找到所需版本,可能需自行构建镜像。 至此,MySQL 已成功安装并运行于 Docker 容器中。
内容声明:
1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违法信息,如您发现违法内容,请联系我们进行举报处理!
4、本文地址:http://www.jujiwang.com/article/0ce5830890e26d5827c4.html,复制请保留版权链接!
代码user,允许用户手动旋转屏幕,说明该选项允许用户手动旋转屏幕方向,如果未指定该选项,则屏幕方向将由设备自动确定,示例<,bodyuser=yes>,<,body>,...。
本站公告 2024-09-25 20:08:42
简介winexec函数是一个WindowsAPI函数,用于在当前进程中启动一个外部应用程序,它是一种强大的工具,可以实现各种自动化任务,例如打开文件、运行脚本和启动其他应用程序,语法c,intwinexec,constcharcommand,intnShowCmd,`command`,要启动的命令行字符串,`nShowCmd`,指...。
技术教程 2024-09-24 05:19:07
引言MVC,模型,视图,控制器,模式是一种设计模式,用于构建可维护和可重用的代码,它将应用程序分解为三个主要组件,模型、视图和控制器,这种分离使得不同领域的开发人员可以同时处理代码的不同方面,从而提高了团队协作的效率,MVC模式的组件模型模型表示应用程序的数据和业务逻辑,它负责管理应用程序的状态,以及处理与外部系统,如数据库,的交互,...。
互联网资讯 2024-09-16 17:11:34
CSS,层叠样式表,是一种强大而灵活的语言,可让您控制网页的外观和功能,通过使用CSS,您可以更改字体、颜色、布局,甚至添加交互效果,有时您可能希望禁用某些CSS规则,例如,您可能希望在打印页面时禁用特定的颜色或字体,要禁用CSS规则,您可以使用`disabled`属性,该属性接受一个布尔值,当`disabled`属性设置为`true...。
本站公告 2024-09-16 04:54:46
引言单选按钮是一种常用的用户界面元素,用于在有限的一组选项中进行单一选择,在某些情况下,单选按钮可能不是最合适的解决方案,尤其是当需要更加灵活或用户友好的选项时,本文将探讨单选按钮的各种替代品,并讨论每种替代品的优点和缺点,替代品多选按钮多选按钮与单选按钮类似,但允许用户选择多项选项,这对于允许用户从多个选项中进行选择的情况非常有用,...。
本站公告 2024-09-14 17:52:12
<,涉及以下步骤,创建`SessionFactory`和`Session`对象,用于与数据库建立连接,使用`Session`对象进行CRUD操作,例如保存、更新、删除和查询实体,关闭`Session`和`SessionFactory`对象,以释放资源,SessionFactorysessionFactory=newConfigur...。
技术教程 2024-09-13 19:58:51
Java虚拟机,JVM,是Java应用程序运行的基础,它在应用程序的性能、可靠性和安全性方面发挥着至关重要的作用,通过实施最佳实践,您可以优化JVM的配置,从而显着提高应用程序的效率和可靠性,1.调整堆大小JVM堆是存储应用程序对象的内存区域,调整堆大小是优化JVM性能的关键,如果堆太大,则会导致频繁的垃圾回收,从而降低应用程序的性能...。
互联网资讯 2024-09-12 19:48:25
阶乘函数,表示为n,,定义为从1到n的所有正整数的乘积,它在数学和科学的各个领域都有广泛的应用,从基础物理学到复杂的生物过程,物理学统计力学,阶乘函数用于计算微观状态的数量,这些状态具有相同的宏观特性,例如,它用于计算给定体积和温度条件下的气体分子的微观分布,量子力学,阶乘函数用于计算波函数在势垒上的反射和透射系数,这对于理解量子隧穿...。
互联网资讯 2024-09-11 10:54:34
在当今数字时代,创建和维护一个充满活力的在线社区至关重要,网站留言板是一个强大的工具,可以促进成员之间的讨论、合作和协作,网站留言板的好处网站留言板提供了多种好处,包括,促进讨论,留言板为成员提供了一个平台,让他们以一种结构化和有意义的方式进行交流,建立社区感,通过促进成员之间的互动,留言板有助于建立一种社区意识和归属感,收集反馈,留...。
技术教程 2024-09-09 20:32:15
MATLAB函数是可重用的代码块,用于执行特定任务,它们可以极大地提高脚本的可读性和可维护性,本文将指导您掌握MATLAB函数定义的艺术,以创建易于阅读和重用的代码,最佳实践使用描述性函数名称,函数名称应清晰地指示其目的,避免使用通用或模糊的术语,添加文档字符串,在函数开头添加一个文档字符串,提供函数用法、输入,输出参数和其他相关信息...。
最新资讯 2024-09-08 23:39:51
降低风险是至关重要的,因为它可以帮助您保护自己、您的家人和您的财务状况,您可以采取许多步骤来降低风险,包括,购买保险投资于安全可靠的投资建立一个应急基金制定并遵循预算避免不必要的债务定期检查您的财务状况购买保险购买保险是降低风险最重要的措施之一,保险可以帮助您在发生意外或不幸事件时保护自己财务状况,有许多不同类型的保险可用,因此了解您...。
互联网资讯 2024-09-08 06:01:49
概述Node.js是一种基于ChromeV8JavaScript引擎构建的开源JavaScript运行时环境,它使开发者能够在服务器端使用JavaScript编写应用程序,从而简化了Web应用程序的开发,Node.js安装后,提供了命令行界面,CLI,,可用于管理代码、运行脚本和与其他工具进行交互,本文将指导您使用Node.jsCLI...。
最新资讯 2024-09-05 16:08:37