docker-compose 方式安装phpmyadmin

发布时间 2023-06-13 00:34:26作者: bjehp

phpmyadmin是访问mysql数据库的可视化web服务,可以在网页上对数据表进行增删改查操作。

安装phpmyadmin

0. 准备

服务器需要安装docker环境和docker-compose环境。具体安装过程不是本文介绍的重点,docker和docker-compose的版本如下。

# docker -v
Docker version 24.0.1, build 6802122

# docker-compose -v
docker-compose version 1.29.2, build 5becea4c

1. 编辑docker-compose.yml文件

#cat docker-compose.yml
version: "3"
services:
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    container_name: phpmyadmin
    restart: always
    ports:
      - 8080:80
    environment:
      - PMA_ARBITRARY: 1
      - PMA_PORTS: 3306

参数说明:

PMA_ARBITRARY -设置为1时,将允许连接到任意服务器
PMA_HOST -定义MySQL服务器的地址/主机名
PMA_PORT -定义MySQL服务器的端口

详细参数说明可查看官网: phpmyadmin官网镜像。需要说明的是,docker hub官网目前是打不开的,需要KeXue上网。

2. 启动phpmyadmin

docker-compose up -d

3. 访问web页面

从浏览器上输入phpmyadmin的服务器地址:http://xxx:8080/

填写mysql的服务器地址、用户名、密码,点击登录进入后,即可查看服务器上存储的数据库及相应的数据表。

遇到的问题

安装过程并不是一帆风顺的,笔者先在第一台使用docker-compose安装phpmyadmin,结果启动失败。

#docker ps -a
CONTAINER ID        IMAGE                                           COMMAND                  CREATED             STATUS                     PORTS               NAMES                   myadmin
ddcae337908f        phpmyadmin/phpmyadmin:latest                    "/docker-entrypoin..."   15 minutes ago      Exited (1) 8 minutes ago                       phpmyadmin

查看docker容器日志。

#docker logs phpmyadmin
[Tue Jun 06 12:07:49.082183 2023] [:crit] [pid 1] (38)Function not implemented: AH00141: Could not initialize random number generator
[Tue Jun 06 12:08:35.910407 2023] [:crit] [pid 1] (38)Function not implemented: AH00141: Could not initialize random number generator
[Tue Jun 06 12:09:30.677167 2023] [:crit] [pid 1] (38)Function not implemented: AH00141: Could not initialize random number generator
[Tue Jun 06 12:14:43.635950 2023] [:crit] [pid 1] (38)Function not implemented: AH00141: Could not initialize random number generator

查阅资料,这个错误和服务器内核有关:random number generator报错,一般是由于服务器内核较低导致。

安装失败的服务器内核版本:

# uname -a
Linux $HOSTNAME 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

更换了一台较新的服务器,结果可以正常安装了。安装正常的服务器内核版本:

#uname -a
Linux $HOSTNAME 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

通过对比发现,安装正常的服务器内核版本高于安装失败的服务器内核版本。

参考资料

基于docker安装phpmyadmin

Linux 使用 docker 安装 phpmyadmin 网页版可视化工具