【发布时间】:2020-03-30 18:57:12
【问题描述】:
对于我的两个容器:
容器 1:
- name: boxoffice
- containerPort : 80
- hostPort: 3030
- service installed : apache2 and php
命令运行容器 1:
docker run --name=boxoffice -p 3030:80 -v /Users/mac/Desktop/storage-web:/var/www/app -d --link=db medoneapache:latest
容器 2:
- name: db
- containerPort : 3306
- hostPort: 3306
- service installed : mysql
命令运行容器 2:
docker run --name=db -p 3306:3306 -v /Users/mac/Desktop/storage-db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=medone -d mysqlmedone:1.0
我通过 --link=db 将第一个容器“boxoffice”链接到第二个容器“db”
我创建了一个 php 文件来测试有一个名为 profile 的数据库的 mysql 连接
“boxoffice”容器中的connection-php-mysql.php (/var/www/app):
<?php
$servername = "db";
$username = "root";
$password = "medone";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
这是我得到的错误:
警告:mysqli_connect():第 7 行 /var/www/app/index.php 中的服务器请求客户端未知的身份验证方法 [caching_sha2_password]
警告:mysqli_connect(): (HY000/2054): 服务器在第 7 行的 /var/www/app/index.php 中请求客户端未知的身份验证方法 连接失败:服务器请求客户端未知的身份验证方法
我检查了第一个容器以获取主机 IP 地址:172.17.0.2 并将其替换为 db 作为服务器名,但我遇到了同样的错误
我无法以 root 身份获取用户名,但出现错误:
mysql -u root
错误 1045 (28000):拒绝用户 'root'@'localhost' 访问(使用密码:否)
【问题讨论】:
标签: php mysql docker mysqli containers