gpt4 book ai didi

mysql - 使用 Docker 从 php 连接到 MySQL 服务器

转载 作者:可可西里 更新时间:2023-11-01 06:59:38 24 4
gpt4 key购买 nike

我是 Docker 的新手。我正在 Docker 环境中开发一个 PHP 应用程序,我需要使用 MySql 服务器/数据库来持久化数据。根据文档,我运行此命令来创建 MySql 服务器镜像:

docker run -v/var/lib/mysql mariadb

它下载了它,但我也遇到了这个错误:

error: database is uninitialized and password option is not specified You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD

如何设置 MYSQL_ALLOW_EMPTY_PASSWORD 选项?

然后我将如何在此图像上创建一个数据库,然后从我的 PHP 代码(在不同的图像上)读取/写入它?

最佳答案

创建容器

运行此命令:docker run --name some-mariadb -e MYSQL_ROOT_PASSWORD=mysecretpw -v mysql:/var/lib/mysql -d mariadb:latest

这样,您就可以使用 mariadb 创建 docker 容器,并将数据存储在 mysql 文件夹中。在命令中,您有 -e MYSQL_ROOT_PASSWORD=my-secret-pw。这会将您的 root 密码设置为 my-secret-pw。当您连接到它时,您的用户是 root,密码是 my-secret-pw

找出地址

docker inspect some-mariadb - 使用此命令,您将找到有关容器的所有信息。您需要您的 IP 地址。

提示:docker inspect some-mariadb | grep IPAddress 您可以更轻松地找到您的 IP 地址。

正在连接

现在是 PHP 部分。运行下面的 PHP,但检查您的主机地址,在我的例子中是 172.17.0.2 ( from PHP documentation .):

<?php
$link = mysqli_connect("172.17.0.2", "root", "my-secret-pw");

if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}

echo "Success: A proper connection to MySQL was made!" . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);

如果工作正常,您将阅读:

A proper connection to MySQL was made!
Host information: 172.17.0.2 via TCP/IP

Ps.: 对于数据库创建,运行所需的命令就像在没有 docker 的数据库中一样。它是相同的(CREATE DATABASE mydb)。

这只是为了开始。推荐你学习docker compose .当你得到它时,你会不会学到很多关于docker的优势。

关于mysql - 使用 Docker 从 php 连接到 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43127599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com