Introduzione
PhpMyAdmin è un'applicazione web che consente di utilizzare MySQL tramite il browser.
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';
Attenzione:
Potresti ricevere un messaggio di output simile al seguente:Your password does not satisfy the current policy requirements.
Leggi questo tutorial per risolvere il problema.
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';
Attenzione:
Potresti ricevere un messaggio di output simile al seguente:Your password does not satisfy the current policy requirements.
Leggi questo tutorial per risolvere il problema.
Associare i privilegi di gestione all'utente appena creato:
GRANT ALL PRIVILEGES ON *.* TO 'nuovo_utente'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
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 configurazione su Linux Mint 19 Tara è terminata.