无法通过 phpmyadmin 登录到我的容器中的 mysql

无法通过 phpmyadmin 登录到我的容器中的 mysql

我正在尝试使用一个 docker 容器:ubuntu 20.04,在其上添加 apache、php、mysql 和 phpmyadmin(全部在相同的容器)

安装的内容:

  • mysql Ver 8.0.29-0ubuntu0.20.04.2 适用于 x86_64 上的 Linux ((Ubuntu))
  • Apache/2.4.41(Ubuntu)
  • phpmyadmin 4:4.9.5+dfsg1-2
  • PHP 7.4.3

这是我的dockerfile的内容:

FROM ubuntu:20.04
MAINTAINER Myself
RUN apt-get update
RUN apt-get -y upgrade
RUN DEBIAN_FRONTEND=noninteractive apt -y install apache2 php libapache2-mod-php mysql-server php-mysql phpmyadmin
# I've set the dbuser to 'admin' dbpass to 'admin' here
COPY ./config-db.php /etc/phpmyadmin/config-db.php
RUN cp /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
RUN a2enconf phpmyadmin
COPY ./start.sh /start.sh
COPY ./init.sh /init.sh
RUN bash /init.sh
CMD ["bash", "start.sh"]

这是我的init.sh的内容:

#!/bin/bash

service mysql start
# I'm creating the phpmyadmin database here
mysql -u root --password= < /usr/share/phpmyadmin/sql/create_tables.sql
mysql -u root --password= -e "CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';"
mysql -u root --password= -e "GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';"
mysql -u root --password= -e "FLUSH PRIVILEGES;"
mysql -u root --password= -e "CREATE DATABASE PROJECT_MANAGEMENT;"

这是我的start.sh的内容:

#!/bin/bash

service mysql start
apachectl -D FOREGROUND

docker build -t whatever .我通过和运行我的容器docker run -d -p 80:80 whatever。我可以通过localhost:80访问apache2,并且我非常确定mysql已启动,因为我的查询有效。

但是使用“admin:admin”登录到 localhost/phpmyadmin 只是不起作用: “无法登录到 MySQL 服务器”,“mysqli_real_connect():(HY000/2002):权限被拒绝”,“配置中定义的控制用户连接失败。”,“mysqli_real_connect():(HY000/2002):权限被拒绝”

phpmyadmin 的屏幕截图

我不知道我该做什么,我非常沮丧,如果你问我,我基本上是从互联网上随意摘录几行来制作我的 bash 脚本和我的 dockerfile......

谢谢


快速修复:由于某种原因,phpmyadmin 没有将端口添加到请求:我必须在文件中设置以下内容/etc/phpmyadmin/config.inc.php$cfg['Servers'][$i]['host'] = "{$dbserver}:{$cfg['Servers'][$i]['port']}";当然,在设置端口指令之后。

如果有人能给出一个很好的解释我将非常感激!

相关内容