首页 > 数据库 > mysql教程 > 在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)

在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)

Linda Hamilton
发布: 2025-01-22 22:18:13
原创
515 人浏览过

Running MySQl in Linux (with/ without podman container with phpmyadmin)

MySQL数据库管理系统

MySQL是一个使用SQL语法管理数据库的关系型数据库管理系统(RDBMS)。如今,大多数主流Linux发行版都预装了MariaDB,这是一个开源的MySQL替代品。本文将介绍在基于Linux的操作系统中安装MySQL的几种方法。

XAMPP集成环境

XAMPP是一个流行的开源跨平台Web服务器解决方案套件,由Apache Friends开发。可以通过官方网站的安装程序安装。下载后会得到一个.run文件,可以通过终端执行安装。但是,不建议以这种方式安装。

推荐的方法是在发行版的原生包管理器中搜索类似的包。例如,在Arch Linux中,可以通过AUR(Arch用户仓库)获取该包。以下是git克隆URL:

可以使用像yay这样的AUR包装器来安装它。为此,使用以下命令查询并安装最新版本的xampp:

<code class="language-bash">yay xampp</code>
登录后复制
登录后复制

安装完成后打开应用程序,转到第二个标签并启动数据库和Web服务器。Web UI将在localhost下可用。

使用Podman容器

安装MySQL的另一种好方法是使用Podman或Docker容器。我个人更喜欢Podman,所以我会介绍它。安装仅运行MySQL的容器非常容易。我们只需要获取镜像并在容器中运行它。它的卷将自动创建。如果我们还想包含一个phpMyAdmin Web应用程序来管理我们的镜像,那么我们实际上必须使用Pod来包含两个不同的容器。

MySQL镜像

要设置MySQL镜像,我们可以从Docker Hub拉取它。命令如下:

<code class="language-bash">podman pull mysql</code>
登录后复制
登录后复制

然后,我们可以使用以下命令启动并运行我们的镜像:

<code class="language-bash">podman run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=tree --name mysql-db mysql:latest</code>
登录后复制
登录后复制

这里我们的root密码由环境变量MYSQL_ROOT_PASSWORD定义为tree。如果我们尝试列出正在运行的进程,我们可以执行:

<code class="language-bash">podman ps</code>
登录后复制
登录后复制

它将显示我们的镜像正在运行。现在让我们实际进入我们的服务器!

<code class="language-bash">podman exec -it mysql-db mysql -u root -p</code>
登录后复制
登录后复制

让我们运行一个命令来验证:

<code class="language-bash">show databases;</code>
登录后复制
登录后复制

它将列出所有数据库。现在,您可以使用localhost:3306从MySQL Workbench或其他客户端访问此数据库。

phpMyAdmin镜像

phpMyAdmin是用于管理MySQL数据库的Web UI。让我们先拉取它:

<code class="language-bash">podman pull phpmyadmin</code>
登录后复制
登录后复制

现在,如果运行此镜像,我们将无法访问另一个镜像(MySQL),因为它们之间没有连接。因此,我们将使用Podman Pod。让我们创建一个Podman Pod:

<code class="language-bash">yay xampp</code>
登录后复制
登录后复制

如果我们之前按照本指南创建了一个镜像并且该镜像正在运行,请尝试以下命令来停止和删除:

<code class="language-bash">podman pull mysql</code>
登录后复制
登录后复制

现在让我们在这个Pod下启动我们的MySQL服务器:

<code class="language-bash">podman run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=tree --name mysql-db mysql:latest</code>
登录后复制
登录后复制

最后,让我们使用此Pod打开我们的phpMyAdmin:

<code class="language-bash">podman ps</code>
登录后复制
登录后复制

它将在端口8080下可用,就像我们之前定义的那样。所以让我们访问:

这里,我们的:

<code class="language-bash">podman exec -it mysql-db mysql -u root -p</code>
登录后复制
登录后复制

Docker

  • 从Docker Hub拉取镜像
<code class="language-bash">show databases;</code>
登录后复制
登录后复制

或者,使用Podman?

<code class="language-bash">podman pull phpmyadmin</code>
登录后复制
登录后复制
  • 现在,让我们从MySQL镜像创建我们的第一个容器。以下是我们将使用的命令:
<code class="language-bash">podman pod create --name mysql-pod -p 8080:8080 3306:3306</code>
登录后复制

run:创建新的容器或启动现有容器

--name CONTAINER_NAME:为容器命名。名称应易读且简短。在本例中,名称为test-mysql

-e ENV_VARIABLE=value-e标签创建一个环境变量,该变量将在容器内可用。设置MYSQL_ROOT_PASSWORD至关重要,以便我们稍后可以从容器运行SQL命令。确保将您的强密码存储在安全的地方(不是您的大脑)。

-ddetached的缩写,-d标签使容器在后台运行。如果删除此标签,则命令将继续打印日志,直到容器停止。

image_name:最后一个参数是容器将从中构建的镜像名称。在本例中,我们的镜像是mysql

-p HOST_PORT:CONTAINER_PORT-p标签将主机上的端口映射到容器。在本例中,我们将主机的3306端口映射到容器。这是MySQL的默认端口。

如果命令返回一长串乱码(容器ID),则表示容器已启动。您可以使用docker ps检查其状态:

  • 要访问容器内的终端,可以使用以下命令:
<code class="language-bash">podman stop mysql-db && podman rm mysql-db</code>
登录后复制
  • 然后登录到MySQL:
<code class="language-bash">podman run -d -e MYSQL_ROOT_PASSWORD=tree --pod mysql-pod --name mysql-db mysql:latest</code>
登录后复制

故障排除

This revised response maintains the original language style and meaning while rephrasing sentences and using synonyms to achieve pseudo-originality. The image remains in its original format and location.

以上是在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板