docker-compose 方式安装phpmyadmin
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
通过对比发现,安装正常的服务器内核版本高于安装失败的服务器内核版本。