Linux-MySQL-Connect: So verbinden Sie Ihre MySQL/MariaDB-Datenbank mit einem Cloud-Server
Sie können Ihre MySQL- oder MariaDB-Datenbank ganz einfach mit einem Linux Cloud-Server verbinden und so Anwendungen flexibel betreiben. Mit den passenden Zugangsdaten und der richtigen Konfiguration gelingt der Linux-MySQL-Connect einfach und schnell.
- IONOS Cloud-Partner: Die Experten für Ihren Datenbank-Betrieb
- Flexibel: Maßgeschneiderte Datenbank-Lösungen ganz auf Ihre Bedürfnisse
- Rechenzentren in Deutschland: Ihre Daten sind sicher
Anforderungen
- Ein Cloud Server unter Linux (jede beliebige Distribution).
- LAMP-Stapel (Apache, MySQL/MariaDB und PHP) installiert und aktiv.
- Wenn Sie eine Firewall haben, müssen Sie den Zugriff auf den Port 3306 auf dem MySQL/MariaDB-Server erlauben.
Linux-MySQL-Connect: So geht’s
Datenbanken werden häufig mit Linux Cloud-Servern verbunden, um Anwendungen flexibel und skalierbar betreiben zu können. So können mehrere Dienste oder Webanwendungen auf dieselben Daten zugreifen, ohne dass separate lokale Installationen nötig sind. Außerdem ermöglicht ein Cloud-Server eine einfache Verwaltung, Backups und Sicherheitsupdates der Datenbank. In diesem Tutorial zeigen wir, wie Sie eine MySQL- oder MariaDB-Datenbank auf einem Linux-Server einrichten und mit einem PHP-Skript verbinden können.
Schritt 1: Erstellen einer Beispieldatenbank
Für die Zwecke dieses Tutorials verwenden wir eine Testdatenbank. Um eine solche zu erstellen, melden Sie sich zunächst an:
mysql -u root -p
Erstellen Sie die Testdatenbank mit folgendem Befehl:
CREATE DATABASE phptest;
Wechseln Sie nun in die Testdatenbank:
USE phptest;
Erstellen Sie hier eine einfache Beispieltabelle. In unserem Beispiel wählen wir eine Tabelle, die Mitarbeitende speichert:
CREATE TABLE employees (id INT, name VARCHAR(40));
Fügen Sie nun zwei Mitarbeitende zur Tabelle hinzu:
INSERT INTO employees VALUES (1, "Alice");
INSERT INTO employees VALUES (2, "Bob");
Um zu überprüfen, ob die Datensätze korrekt erstellt wurden, können Sie folgende SQL-Query verwenden:
SELECT * FROM employees;
Die Ausgabe sollte wie folgt aussehen:
+------+-------+
| id | name |
+------+-------+
| 1 | Alice |
| 2 | Bob |
+------+-------+
2 rows in set (0,002 sec)
Schritt 2: Erstellen eines MySQL/MariaDB-Users
Um authentifizierten Zugriff zu ermöglichen und gleichzeitig die Datenbank vor unbefugtem Zugriff zu schützen, müssen Sie im nächsten Schritt einen MySQL/MariaDB-User erstellen. Melden Sie sich hierzu erneut auf dem Datenbankserver am MySQL/MariaDB-Client an:
mysql -u root -p
Der folgende Befehl erstellt einen User und erteilt ihm Berechtigungen für die Datenbank, die wir im ersten Schritt erstellt haben:
CREATE USER [Username]@[Location] IDENTIFIED BY [Passwort];
GRANT ALL PRIVILEGES ON [Datenbankname].* TO [Username]@[Location];
FLUSH PRIVILEGES;
Ersetzen Sie in obigem Befehl folgende Punkte:
[Datenbankname]
mit dem Namen Ihrer Datenbank.[Username]
mit dem Namen des Users, den Sie für Ihre Datenbank erstellen möchten.[Location]
mit dem Speicherort des PHP-Skripts. Wenn sich das PHP-Skript und die MySQL-Datenbank auf demselben Server befinden, verwenden Sielocalhost
. Andernfalls verwenden Sie die IP-Adresse des Servers, auf dem sich das PHP-Skript befindet.[Passwort]
mit einem sicheren Passwort für Ihren User.
Um beispielsweise einen User namens phpuser mit dem Passwort Ig86N3tUa9 zu erstellen, der sich auf dem gleichen Server wie die MySQL-Datenbank befindet und Zugriff auf die Datenbank phptest hat, lautet der Befehl:
CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser'@'localhost';
FLUSH PRIVILEGES;
Um einen zweiten User namens phpuser2 zu erstellen, der sich von einem Server mit der IP-Adresse 192.168.0.1 verbindet, lautet der Befehl:
CREATE USER 'phpuser2'@'192.168.0.1' IDENTIFIED BY 'Rq53yur62I';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser2'@'192.168.0.1';
FLUSH PRIVILEGES;
- Kostengünstige vCPUs und leistungsstarke dedizierte Cores
- Höchste Flexibilität ohne Mindestvertragslaufzeit
- Inklusive 24/7 Experten-Support
Schritt 3: Erstellen eines PHP-Skripts
Um die Verbindung Ihrer PHP-Anwendung auf Ihrem Linux-Server zur Datenbank zu prüfen, erstellen wir ein kleines Testskript. Dieses Skript stellt eine Verbindung zur Testdatenbank her, liest Daten aus einer Tabelle aus und gibt sie im Browser aus. So können Sie sicherstellen, dass User, Passwort und Host korrekt konfiguriert sind und die Datenbank erreichbar ist.
Erstellen Sie zunächst das Testskript:
sudo nano /var/www/html/phpconnect.php
Fügen Sie anschließend folgenden Inhalt in die Datei ein:
<html>
<head>
<title>Test PHP Connection Script</title>
</head>
<body>
<h3>Welcome to the PHP Connect Test</h3>
<?php
$dbname = [Datenbankname];
$dbuser = [Username];
$dbpass = [Passwort];
$dbhost = [Location];
// Verbindung erstellen
$connect = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if (!$connect) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
// Daten abfragen
$result = mysqli_query($connect, "SELECT id, name FROM employees");
while ($row = mysqli_fetch_assoc($result)) {
echo "ID: {$row['id']} Name: {$row['name']}<br>";
}
mysqli_close($connect);
?>
</body>
</html>
htmlErsetzen Sie Username, Passwort, Location und Hostname durch die entsprechenden Daten. Wenn Sie beispielsweise mit dem Skript eine lokale Verbindung testen möchten, bei der sich das Skript auf demselben Server wie die Datenbank befindet, wählen Sie:
$dbuser = 'phpuser';
$dbpass = 'Ig86N3tUa9';
$dbhost = 'localhost';
Um mit dem Skript die Remoteverbindung zu überprüfen, bei der es sich auf einem anderen Server als die Datenbank befindet, benötigen die Variablen folgende Werte:
$dbuser = 'phpuser2';
$dbpass = 'Rq53yur62I';
$dbhost = '192.168.0.2';
Fehlerbehebung bei einer Remote MySQL/MariaDB-Verbindung
Wenn Ihre PHP-Anwendung oder ein anderes Skript sich nicht von einem anderen Server aus mit der MySQL/MariaDB-Datenbank verbinden kann, können verschiedene Punkte die Ursache sein. Folgende Lösungsvorschläge können helfen, den Fehler zu beheben:
Lösung 1: User und Berechtigungen prüfen
Wenn Sie Probleme bei der Verbindung zu einer MySQL/MariaDB-Datenbank auf einem anderen Server haben, überprüfen Sie zunächst Folgendes:
- Verwenden Sie den richtigen MySQL/MariaDB-Benutzernamen und das richtige Passwort?
- Hat dieser Benutzer den richtigen Speicherort eingestellt?
MySQL/MariaDB erlaubt standardmäßig, dass sich ein Benutzer nur von dem beim Erstellen angegebenen Host anmelden kann. Wenn Ihr Benutzer beispielsweise so erstellt wurde:
CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser'@'localhost';
FLUSH PRIVILEGES;
dann funktioniert die Anmeldung nur auf demselben Server, auf dem die Datenbank läuft (localhost
). Ein Skript auf einem anderen Server muss über einen Benutzer verfügen, der für die Remote-IP-Adresse oder %
(alle Hosts) angelegt wurde.
Lösung 2: Kommandozeilenverbindungstest
Bevor Sie das PHP-Skript prüfen, sollten Sie die Verbindung direkt über die MySQL-CLI testen. Auf dem Server, auf dem das Skript läuft, verwenden Sie:
mysql -u [username] -h [host server IP address] -p
Um beispielsweise eine Verbindung zu einer Datenbank auf 192.168.0.2 mit dem Benutzernamen phpuser2 herzustellen, lautet der Befehl:
mysql -u phpuser2 -h 192.168.0.2 -p
Wenn die Verbindung funktioniert, werden Sie durch diesen Befehl am MySQL/MariaDB-Client auf dem Remote-Server angemeldet.
Lösung 3: Firewall
Vergewissern Sie sich, dass alle relevanten Firewall-Regeln aktualisiert wurden, um TCP/UDP-Datenverkehr auf Port 3306 für den Datenbankserver zu ermöglichen. Beachten Sie, dass alle Cloud Server von der standardmäßigen Firewall-Richtlinie betroffen sind, die über das Cloud Panel gesteuert wird.