Introduzione

PhpMyAdmin è un'applicazione web che consente di utilizzare MySQL tramite il browser.

Se il vostro intento è installare phpMyAdmin su di un server Ubuntu 18.04 in remoto continuate a leggere, altrimenti se volete installare phpMyAdmin sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Siete ora connessi al vostro server, siete pronti per iniziare l'installazione di phpMyAdmin.

Prerequisiti

Installare PhpMyAdmin
Per installare phpMyAdmin dare questi semplici comandi da terminale:

sudo apt update
sudo apt install phpmyadmin php-mbstring php-gettext

ATTENZIONE
Durante l'installazione apparirà una schermata che vi chiederà se utilizzate Apache2 oppure Lighttpd. Apache2 sembrerà selezionato perché illuminato, ma non è così. Premere spazio per selezionarlo, altrimenti l'installazione non genererà i collegamenti necessari con Apache.

  • Dopo aver selezionato Apache2 vi verrà chiesto di utilizzare dbconfig-common, selezionare YES.

  • Inserire la password di amministratore del vostro database.

  • Scegliere e confermare la password per phpMyAdmin.

Abilitare l'estensione mbstring:

sudo phpenmod mbstring

Riavviare Apache2:

sudo service apache2 restart

È possibile adesso effettuare il login su phpmyadmin con l'utente phpmyadmin e la password impostata durante la fase d'installazione.

PhpMyAdmin di default non sarà in grado di utilizzare invece le credenziali di root.

Potreste riscontrare i seguenti errori:


#1698 - Access denied for user 'root'@'localhost'
mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'

La soluzione più semplice (e più sicura) è creare un nuovo utente e garantire i privilegi richiesti.

Modificare il metodo di autenticazione

A partire dalla versione 5.7 di MySQL, l'utente root di MySQL è impostato per l'autenticazione tramite il plug-in auth_socket per impostazione di default anziché con una password.

Per utilizzare una password per connettersi a MySQL come utente root è necessario modificare il metodo di autenticazione, da auth_socket a mysql_native_password.

Poiché non è stata impostata ancora nessuna password, è possibile connettersi al server MySQL utilizzando semplicemente il comando mysql oppure sudo mysql se si è loggati come utente normale. Successivamente sarà necessario utilizzare il comando mysql u root -p da utente root, altrimenti sudo mysql -u root -p da utente normale.

Quindi se siete loggati come utente root, scrivere nel terminale:

mysql

Altrimenti se siete loggati come utente normale con privilegi sudo:

sudo mysql

Per verificare il metodo di autenticazione associato agli account di mysql:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Dovresti ricevere un messaggio simile a questo:


+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *5852386AB32C5DAD5DDA4F5FED911A70DA342656 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Come potete vedere per l'utente root è impostato di default il metodo di autenticazione auth_socket. Per utilizzare l'autenticazione con password per l'account root effettuare le seguenti modifiche:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'TUA_PASSWORD';

Quindi effettuare un refresh delle tabelle:

FLUSH PRIVILEGES;

Adesso è possibile verificare il nuovo metodo di autenticazione associato all'utente root:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Dovresti ricevere un messaggio simile a questo:


+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *E6A3377941E640ADEDCC8907E390B06B0C863862 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *5852386AB32C5DAD5DDA4F5FED911A70DA342656 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Uscire dal prompt di MySQL:

exit;

Per effettuare nuovamente il login al server MySQL adesso sarà necessario inserire una password, quindi da terminale:

Se siete loggati come utente root, scrivere nel terminale:

mysql -u root -p

Altrimenti se siete loggati come utente normale con privilegi sudo:

sudo mysql -u root -p

In questo modo potrete accedere su PhpMyAdmin oppure ad altro software simile con l'utente root.

Opzione 2: Aggiungere i privilegi root per l' utente phpmyadmin
Esegui i seguenti comandi:

GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;

Adesso è possibile effettuare il login con l'utente phpmyadmin ed avere tutti i privilegi dell'utente root.

Opzione 3: Creare un nuovo utente
Adesso è possibile connettersi al database tramite PhpMyadmin utilizzando come nome utente "phpmyadmin" e la password inserita nei passaggi precedenti.

In alternativa è possibile creare un nuovo utente ed assegnare i privilegi necessari:

CREATE USER 'nuovo_utente'@'localhost' IDENTIFIED BY 'nuova_password';
GRANT ALL PRIVILEGES ON *.* TO 'nuovo_utente'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;

Adesso potete collegarvi al vostro indirizzo IP pubblico oppure in localhost aggiungendo /phpmyadmin alla fine dell'indirizzo.


http://vostro_dominio/phpmyadmin

http://localhost/phpmyadmin

L'installazione e la configuraz