在使用Docker進(jìn)行應(yīng)用開發(fā)時,有時候需要連接到外部的MySQL數(shù)據(jù)庫。那么,該如何實現(xiàn)呢?以下是一個簡單的教程,詳細(xì)介紹了如何使用Docker應(yīng)用連接到外部的MySQL。
首先,我們需要在本地或者云服務(wù)器上安裝并配置好MySQL。然后,我們需要創(chuàng)建一個MySQL用戶,以便我們的Docker應(yīng)用可以通過該用戶進(jìn)行連接。
CREATE USER 'docker'@'%' IDENTIFIED BY 'yourpassword'; GRANT ALL PRIVILEGES ON *.* TO 'docker'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
接下來,我們需要在Dockerfile中添加MySQL客戶端,以便我們的Docker應(yīng)用程序可以連接到外部的MySQL數(shù)據(jù)庫。
FROM php:7.0-apache RUN apt-get update RUN apt-get install -y mysql-client
然后,我們需要在Docker Compose文件中添加一個環(huán)境變量,以便Docker應(yīng)用程序可以使用我們創(chuàng)建的MySQL用戶進(jìn)行連接。
version: '3' services: web: build: . ports: - "80:80" environment: - DB_HOST=yourdatabasehostname - DB_NAME=yourdatabasename - DB_USER=docker - DB_PASSWORD=yourpassword
以上代碼將在web服務(wù)中定義環(huán)境變量,其中DB_HOST是您的數(shù)據(jù)庫主機(jī)名,DB_NAME是您要使用的數(shù)據(jù)庫名稱,DB_USER是我們之前創(chuàng)建的MySQL用戶,DB_PASSWORD是您的MySQL密碼。
最后,我們需要在我們的應(yīng)用程序中使用PHP連接到外部MySQL數(shù)據(jù)庫。以下是一個簡單的PHP代碼示例,它連接到MySQL并執(zhí)行一個查詢:
$servername = getenv("DB_HOST"); $username = getenv("DB_USER"); $password = getenv("DB_PASSWORD"); $dbname = getenv("DB_NAME"); $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM users"; $result = $conn->query($sql); if ($result->num_rows >0) { while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. "
"; } } else { echo "0 results"; } $conn->close();
以上代碼將連接到外部的MySQL數(shù)據(jù)庫,并從“users”表中檢索數(shù)據(jù)。
現(xiàn)在,我們已經(jīng)學(xué)會了如何在Docker應(yīng)用中連接外部MySQL。您可以使用這些技術(shù)連接到任何外部MySQL數(shù)據(jù)庫,無論它們位于哪個位置。