MySQL connect su Linux: come connettere il tuo database MySQL/MariaDB a un server cloud
Puoi connettere facilmente il tuo database MySQL o MariaDB a un server Linux cloud, consentendo di gestire le applicazioni in modo flessibile. Con le credenziali corrette e la giusta configurazione, MySQL connect su Linux è semplice e veloce.
- Partner IONOS Cloud
- Soluzioni flessibili e su misura
- Data center situati in Europa
Requisiti
- Un server cloud su Linux (qualsiasi distribuzione).
- Uno stack LAMP (Apache, MySQL/MariaDB e PHP) installato e attivo.
- Se hai un firewall, devi consentire l’accesso alla porta 3306 sul server MySQL/MariaDB.
MySQL connect su Linux: come funziona
I database vengono spesso collegati ai server cloud Linux per gestire applicazioni in modo flessibile e scalabile. Ciò consente a più servizi o applicazioni web di accedere agli stessi dati senza necessità di installazioni locali separate. Inoltre, un server cloud facilita la gestione, i backup e gli aggiornamenti di sicurezza del database. In questo tutorial ti mostriamo come configurare un database MySQL o MariaDB su un server Linux e collegarlo a uno script PHP.
Primo passaggio: creare un database di esempio
Ai fini di questo tutorial utilizzeremo un database di prova. Per crearne uno, effettua prima di tutto l’accesso:
mysql -u root -pCrea il database di prova con il seguente comando:
CREATE DATABASE phptest;Ora passa al database di prova:
USE phptest;Qui crea una semplice tabella di esempio. Nel nostro esempio scegliamo una tabella che memorizza i dipendenti:
CREATE TABLE employees (id INT, name VARCHAR(40));Aggiungi ora due dipendenti alla tabella:
INSERT INTO employees VALUES (1, "Alice");
INSERT INTO employees VALUES (2, "Bob");Per verificare se i record sono stati creati correttamente, puoi utilizzare la seguente query SQL:
SELECT * FROM employees;L’output dovrebbe presentarsi nel modo seguente:
+------+-------+
| id | name |
+------+-------+
| 1 | Alice |
| 2 | Bob |
+------+-------+
2 rows in set (0,002 sec)Secondo passaggio: creare un utente MySQL/MariaDB
Per consentire l’accesso autenticato e allo stesso tempo proteggere il database da accessi non autorizzati, nel passaggio successivo devi creare un utente MySQL/MariaDB. Accedi nuovamente al server di database tramite il client MySQL/MariaDB:
mysql -u root -pIl comando seguente crea un utente e gli concede i permessi per il database che abbiamo creato nel primo passaggio:
CREATE USER [Username]@[Location] IDENTIFIED BY [Password];
GRANT ALL PRIVILEGES ON [NomeDatabase].* TO [Username]@[Location];
FLUSH PRIVILEGES;Sostituisci i seguenti elementi nel comando sopra:
[NomeDatabase]con il nome del tuo database.[Username]con il nome dell’utente che desideri creare per il tuo database.[Location]con il percorso dello script PHP. Se lo script PHP e il database MySQL si trovano sullo stesso server, utilizzalocalhost. Altrimenti, utilizza l’indirizzo IP del server in cui si trova lo script PHP.[Password]con una password sicura per il tuo utente.
Per esempio, per creare un utente chiamato phpuser con la password Ig86N3tUa9, che si trova sullo stesso server del database MySQL e ha accesso al database phptest, il comando è:
CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser'@'localhost';
FLUSH PRIVILEGES;Per creare un secondo utente chiamato phpuser2 che si connette da un server con l’indirizzo IP 192.168.0.1, il comando è:
CREATE USER 'phpuser2'@'192.168.0.1' IDENTIFIED BY 'Rq53yur62I';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser2'@'192.168.0.1';
FLUSH PRIVILEGES;
Terzo passaggio: creare uno script PHP
Per verificare la connessione della tua applicazione PHP sul server Linux al database, creiamo un piccolo script di prova. Questo script stabilisce una connessione al database di test, legge i dati da una tabella e li visualizza nel browser. In questo modo puoi assicurarti che utente, password e host siano configurati correttamente e che il database sia raggiungibile.
Innanzitutto, crea lo script di prova:
sudo nano /var/www/html/phpconnect.phpInserisci quindi il seguente contenuto nel file:
<html>
<head>
<title>Test PHP Connection Script</title>
</head>
<body>
<h3>Welcome to the PHP Connect Test</h3>
<?php
$dbname = [NomeDatabase];
$dbuser = [Username];
$dbpass = [Password];
$dbhost = [Location];
// Stabilire una connessione
$connect = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if (!$connect) {
die("Connessione non andata a buon fine: " . mysqli_connect_error());
}
// Richiedere i dati
$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>htmlSostituisci nome utente, password, posizione e nome host con i dati corrispondenti. Se, ad esempio, desideri testare una connessione locale con lo script sullo stesso server del database, seleziona:
$dbuser = 'phpuser';
$dbpass = 'Ig86N3tUa9';
$dbhost = 'localhost';Per verificare la connessione remota con lo script, quando si trova su un server diverso dal database, le variabili devono avere i seguenti valori:
$dbuser = 'phpuser2';
$dbpass = 'Rq53yur62I';
$dbhost = '192.168.0.2';Risoluzione dei problemi di una connessione remota MySQL/MariaDB
Se la tua applicazione PHP o un altro script non riesce a effettuare una connessione da un altro server al database MySQL/MariaDB, le cause potrebbero essere diverse. I seguenti suggerimenti possono aiutare a risolvere l’errore:
Soluzione 1: verificare utente e permessi
Se hai problemi a connetterti a un database MySQL/MariaDB su un altro server, verifica innanzitutto quanto segue:
- Stai usando il nome utente e la password corretti per MySQL/MariaDB?
- Questo utente ha impostato la posizione corretta?
MySQL/MariaDB consente per impostazione predefinita a un utente di effettuare l’accesso solo dall’host specificato durante la creazione. Ad esempio, se il tuo utente è stato creato in questo modo:
CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser'@'localhost';
FLUSH PRIVILEGES;Allora l’accesso funziona solo sullo stesso server su cui è in esecuzione il database (localhost). Uno script su un altro server deve avere un utente creato per l’indirizzo IP remoto o % (tutti gli host).
Soluzione 2: test di connessione tramite riga di comando
Prima di controllare lo script PHP, dovresti testare la connessione direttamente tramite la CLI di MySQL. Sul server in cui lo script è in esecuzione, utilizza:
mysql -u [username] -h [host server IP address] -pAd esempio, per stabilire una connessione a un database su 192.168.0.2 con il nome utente phpuser2, il comando è:
mysql -u phpuser2 -h 192.168.0.2 -pSe la connessione funziona, con questo comando accederai al client MySQL/MariaDB sul server remoto.
Soluzione 3: firewall
Assicurati che tutte le regole del firewall rilevanti siano aggiornate per consentire il traffico TCP/UDP sulla porta 3306 per il server del database. Tieni presente che tutti i server cloud sono soggetti alla politica firewall predefinita, che viene gestita tramite il Cloud Panel.

