Guide / tutorial per phpMyAdmin. Guida per imparare ad usare phpMyAdmin per fare query sql sul database mysql. Trucchi e segreti di phpMyAdmin.
Visualizzazione post con etichetta phpmyadmin+guide. Mostra tutti i post
Visualizzazione post con etichetta phpmyadmin+guide. Mostra tutti i post

mercoledì 18 aprile 2018

Modificare charset campo tabella (phpmyadmin)

Se non hai un database mysql troppo datato, devi sapere che è possibile cambiare il charset dei singoli campi di una tabella, creando addirittura tabelle multicharset (pratica che comunque sconsiglio).
Se poi utilizzi phpmyadmin, la procedura per fare ciò è decisamente semplice, vediamo subito come.


Come modificare il charset di uno specifico campo tabella in phpmyadmin


Se vuoi passare da utf8 a latin swedish o a qualsiasi altro charset ti venga in mente, con phpmyadmin puoi compiere questa azione su qualsiasi campo testuale delle tue tabelle, con pochi semplici click.

Ecco come fare per cambiare charset su phpmyadmin:
  1. Collegati al tuo db con un utente che ha i privilegi sufficienti a modificare la struttura delle tabelle
  2. Entra nel database in cui è contenuta la tabella da modificare
  3. Clicca sulla tabella desiderata
  4. Clicca sulla voce Struttura
  5. Individua il campo da editare clicca su Modifica
  6. Adesso potrai agire sulla voce codifica caratteri, dal quale potrai selezionare il charset desiderato
  7. Una volta cambiato charset, cliccare su Salva per apportare le modifiche

Modificare charset campo tabella (phpmyadmin)

Se però la tabella in questione ha già dei dati al suo interno, tramite questa procedura potrebbe anche risultarvi un errore e l'impossibilità di cambiare il charset, se quello selezionato non contempla un carattere già memorizzato nel db.

Inutile dire che cambiare charset ad una tabella in corso d'opera è sempre un'operazione un po' delicata.
Quando possibile dunque,  settare da subito la giusta codifica dei caratteri, in modo tale da non aver sorprese future.
Tra i più usati e compatibili c'è ovviamente l'utf8, nello specifico l'utf8_general_ci, o ancora meglio in alcuni casi, l'utf8_unicode_ci.
Con questi set di caratteri infatti, non dovreste avere problemi di accentate e caratteri speciali, sempre ovviamente che poi dalla pagina o l'app da cui pescate i dati, dichiarate il giusto charset :)

mercoledì 14 marzo 2018

Come aggiornare PhpMyAdmin su Wamp

Se per caso hai un wamp un po' datato e la sua versione di phpmyadmin inizia ad essere un po' troppo obsoleta, non preoccuparti, ora ti spiegherò come aggiornarla.

Oltre infatti a poter ovviamente installare quanti phpmyadmin ti pare, in specifiche cartelle a partire dalla root di wamp, è anche possibile cambiare quello che viene lanciato di default dal wamp.
Sto ovviamente parlando della versione per windows, per chi non conoscesse il significato di wamp :p
Ma bando alle ciance, vediamo subito come fare.


Come aggiornare PhpMyAdmin su Wamp


Per poter installare l'ultima versione di phpmyadmin in modo tale da farla partire come default di wamp, basta procedere nel seguente modo:

  1. Scaricare l'ultima versione di phpmyadmin per windows (o quella desiderata) dal sito ufficiale: https://www.phpmyadmin.net/downloads/
  2. Estrarre la cartella contenente tutti i file nel seguente percorso: c:/wamp/apps (o wamp64, dipende da quale avete)
  3. Rinominare la cartella del phpmyadmin in modo tale da togliere eventuali distanziatori/trattini tra il nome e la versione.
    Il risultato finale sarà dunque un percorso del genere:
    C:\wamp\apps\phpMyAdmin4.7.9
  4. Entra in apps, dentro la cartella del precedente phpmyadmin funzionanete, e copia il suo file config.inc.php dentro la cartella del nuovo
  5. Entra in c:/wamp/alias e modifica il file phpmyadmin.conf, sostituendo tutti i riferimenti alla versione del precedente phpmyadmin, con la nuova.
    Dovresti trovare due occorrenze:
    Alias /phpmyadmin "c:/wamp/apps/phpmyadminNUMERO-VERSIONE/"
    e
    <Directory "c:/wamp/apps/phpmyadminNUMERO-VERSIONE/">

    Come aggiornare PhpMyAdmin su Wamp
  6. Vai nella root di wamp e cerca il file wampmanager.conf, se presente la sezione [apps], aggiorna/inserisci la seguente riga:
    phpmyadminVersion = 4.7.9
    dove ovviamente dovrai mettere il numero della versione che hai appena scaricato
  7. Chiudi e riapri wamp ed il gioco è fatto

Bene, adesso che sai come aggiornare il phpmyadmin di default di wamp, ogni tanto fallo.
Avere uno strumento per compiere operazioni sul database mysql sempre aggiornato, è sicuramente importante per risolvere eventuali problemi di sicurezza e/o prestazioni.

Ovviamente, se installi una versione del phpmyadmin che non ti convince, potrai tornare indietro in qualsiasi momento.
Ti basterà ricambiare nuovamente i vari puntamenti e riavviare wamp, ed eccoti tornato al phpmyadmin di default.

martedì 13 marzo 2018

PHPMYADMIN: spostare una tabella in un altro database

Ti è mai capitato di voler spostare una tabella mysql da un database ad un altro?
A me no, però ho visto che in phpmyadmin è possibile compiere questa operazione con un click, quindi eccomi qui a fare questo ennesimo post su questa comodissima piattaforma di gestione database mysql.

Quindi, se la tua necessità è proprio quella di voler spostare una tabella da un database ad un altro, qui sotto troverai le istruzioni per farlo.


Come spostare una tabella in un altro database con PhpMyAdmin


Mettiamo ad esempio che su un'istanza mysql abbiamo creato diversi db.
Ad un certo punto, causa la stanchezza dopo una dura giornata di lavoro, ecco che creiamo per errore una tabella in un database sbagliato.
Magari ci accorgiamo dell'errore solo dopo ore di insert, come fare per rimediare?
Semplice, basta spostare la tabella su un altro database grazie a phpmyadmin.

Ecco come bisogna fare:
  1. Apriamo phpmyadmin ed accediamo con un utente con abbastanza privilegi su entrambi i db
  2. Entriamo nel database in cui è presente la tabella da spostare
  3. Clicchiamo sulla suddetta tabella
  4. Clicchiamo in alto a destra su Operazioni (la voce potrebbe essere annidata dentro la sezione Più)
  5. Individuare in alto a destra la tab "sposta la tabella in"
  6. Ora, selezionare il database di destinazione, nella tendina dei db
  7. Infine cliccare su Esegui per compiere l'operazione

PHPMYADMIN: spostare una tabella in un altro database

Tutto qui.
Con un semplice click abbiamo spostato la tabella mysql in un altro database, senza doverla esportare e reimportare, molto comodo, no?

PS ad un osservatore attento di sicuro non sarà sfuggito che queste operazioni sono praticamente le stesse eseguite per rinominare una tabella, come già spiegato poco fa in questo post.

lunedì 5 marzo 2018

Come rinominare una tabella in PhpMyAdmin

Quando si creano delle tabelle in mysql, sia che si utilizzi phpmyadmin o qualsiasi altro software di gestione di database (o anche se si compie questa operazione a mano tramite il puro e semplice linguaggio sql), può sempre capitare di sbagliare il nome di una tabella.
Ma anche nel caso in cui non ci si trovi davanti ad un errore umano, può sempre capitare di voler rinominare una tabella mysql.

Ecco, in questi casi occorre sapere come fare, in modo tale da non dover ricreare la tabella da zero e cancellare quella con il nome errato.
Su phpmyadmin per fortuna, questa operazione è semplice e veloce.
Vediamo subito come fare.


Come rinominare una tabella in PhpMyAdmin


Le operazioni da compiere per cambiare nome ad una tabella mysql tramite phpmyadmin sono le seguenti:
  1. Collegarsi a phpmyadmin con un utente che abbia i privilegi di modifica della struttura delle tabelle nel database in cui si vuole agire
  2. Cliccare sul database contenente la tabella
  3. Cliccare sul nome della tabella da rinominare
  4. In alto a destra, cliccare sulla voce Operazione (o su Più, e poi su operazione, se il menù è raggruppato)
  5. In alto a destra, nella sezione sposta la tabella, sostituire il nome della tabella attuale con il nuovo nome scelto
  6. Cliccare su esegui per compiere l'operazione

Come rinominare una tabella in PhpMyAdmin

Con pochi semplici click avremo rinominato la tabella mysql dalla comoda interfaccia grafica di phpmyadmin.
Questa operazione può essere eseguita tutte le volte che ci pare, ma ovviamente, se abbiamo già sviluppato codice (es. php) che richiama il nome di una tabella rinominata, questo non funzionerà più, quindi occorre ricordarsi di sistemare tutte le app collegate alla tabella appena rinominata.

Per comodità metto anche il videotutorial su come rinominare tabelle con phpmyadmin:
https://youtu.be/En_oUL5-fhg



Bene è tutto, spero che questo breve tutorial su phpmyadmin possa esservi stato utile :)

giovedì 5 ottobre 2017

Leggi il post

Che ore sono in PHP

Post veloce veloce che spiega come ottenere l'ora corrente in php.
La funzione che andrò a spiegare è infatti una delle più basiche ed utili di questo linguaggio di programmazione per il web, quindi è una nozione indispensabile da sapere se si sceglie il php come linguaggio di sviluppo.


Che ore sono in PHP


Per sapere "che ore sono" con il php, basta avvalersi di una delle più famose funzioni esistenti, la famigerata date();

Grazie a questa funzione infatti, è possibile ricavare l'ora corrente, con una semplice riga di codice:

echo date("h:i");

Con questa semplice stringa di codice php infatti, è possibile stampare a video l'ora ed i minuti correnti.
I parametri che la funzione date riconosce sono diversi, ma nello specifico di questo esempio a noi interessano al massimo solo 2 o 3 parametri, ovvero: h, i, s, che ovviamente stanno per ore, minuti e secondi.

Utilizzando inoltre le maiuscole o le minuscole nell'ora, è possibile variare il formato dell'orario stampato a video.
H al posto di h infatti, mostra le ore 15 al posto delle 3.

Se tutto ciò che ho appena ho scritto è chiaro, che cosa stamperà mai a video la seguente sintassi php:
echo date("H:i:s");
???
Facile vero? :)

mercoledì 13 settembre 2017

Cancellare database mysql con phpmyadmin

Dopo aver creato un database mysql, averlo riempito di tabelle e di record, può anche capitare di decidere che quell'archivio di dati non ci serve più.
In questi casi quindi, se si è sicuri di quello che si vuole, è importante sapere come fare per cancellare un database mysql con phpmyadmin.

Vediamo quindi come compiere questa delicata operazione con pochi semplici click, da interfaccia grafica, ovviamente.


Come cancellare un database mysql con phpmyadmin


Per poter eliminare database mysql tramite phpmyadmin, basta seguire pochi semplici steps:
  1. Collegarsi a phpmyadmin con un utente che ha privilegi completi sul database da cancellare
  2. Cliccare sul nome del database in oggetto
  3. Cliccare sul menù in alto, alla voce Operazioni
  4. Cliccare sulla voce "Cancella il database" e dare la conferma

Cancellare database mysql con phpmyadmin

Questa operazione equivale al comando sql drop database.
Con pochi semplici click dunque, avrai cancellato definitivamente il database mysql, con tutte le sue tabelle.

Attenzione che però, questa operazione non è reversibile.
Quindi se cancelli un db mysql con phpmyadmin, senza aver fatto prima il backup, non potrai più rientrare in possesso dei dati in esso contenuti.

Fine tutorial su come cancellare database con phpmyadmin... buon drop a tutti :)

venerdì 4 agosto 2017

Creare indici tabella con phpmyadmin

Gli indici sono delle strutture ausiliare che facilitano l'accesso ai dati di un database mysql, e non (esistono praticamente in tutti i database relazionali).
Sapere dunque come creare un indice con phpmyadmin può aiutare a compiere queste operazioni di ottimizzazioni del database, senza necessariamente dover conoscere la sintassi sql per la creazione degli indici.

Vediamo dunque come fare per creare un indice mysql tramite una comoda interfaccia web visiva, con pochi semplici click.


Come creare indici di tabella con phpmyadmin


Per poter aggiungere un indice ad una tabella mysql esistente, tramite phpmyadmin, seguire questi semplici passaggi:
  1. Accedere a phpmyadmin con un utente con i privilegi di modifica struttura sulla tabella alla quale si vogliono modificare gli indici
  2. Entrare nel database in cui si trova la tabella
  3. Cliccare sul nome della tabella desiderata per entrarci
  4. Nel menù in alto, cliccare su Struttura
  5. Adesso avrai 4 scelte, equivalenti a 3 tipi di indici: Primaria, Unica, Indice, Testo completo
    Clicca sul tipo di indice desiderato e dai la conferma (OK)

Creare indici tabella con phpmyadmin

Avrai così aggiunto un indice alla tua tabella mysql.
Adesso, sotto il nome della tabella a sinistra, troverai la voce Indici, cliccando sulla quale potrai modificare/inserire/eliminare gli indici mysql di phpmyadmin.

Bene, questa guida è sostanzialmente conclusa.
Spendo solo un attimo in più per spiegare il significato dei 4 tipi di indici sopra citati:
  • Primaria (Primary key): equivale ad un tipo di indice che si usa per indicare le chiavi primarie tipo gli id. Non ammette nè valori nulli né duplicati.
  • Unica (Unique): è come la primaria, solo che ammette i valori null
  • Indice (Column index): l'index è il più usato degli indici e serve semplicemente per dare rapido accesso ad una o più colonne di una tabella mysql. Consente nulli e duplicati
  • Testo completo (Full text): l'indice fulltext serve per facilitare la ricerca nei campi di testo lungo. Ammette duplicati e valori nulli

Bene, per l'argomento phpmyadmin index è proprio tutto :)

giovedì 3 agosto 2017

Come cancellare una tabella con PhpMyAdmin

Dopo aver creato una tabella mysql, a volte può essere anche necessario doverla cancellare.
Eliminare tabelle con PhpMyAdmin è ovviamente un'operazione molto semplice da fare, tuttavia bisogna comunque essere consapevoli che questa è un'operazione non reversibile.

Vediamo dunque come cancellare una tabella mysql da PhpMyAdmin, con pochi semplici click, senza ovviamente dover conoscere la sintassi sql necessaria per fare ciò, ma tramite interfaccia visuale.


Come cancellare una tabella con PhpMyAdmin


Per poter eliminare una tabella su mysql utilizzando phpmyadmin, seguire i seguenti passaggi:
  1. Collegarsi a phpmyadmin con un utente con abbastanza privilegi
  2. Entrare nel database che contiene la tabella
  3. Cliccare sulla tabella da cancellare
  4. Cliccare sul menù in alto, sulla voce Operazioni
  5. Adesso, scrolla la pagina fino a trovare sulla voce su cui devi cliccare, ovvero su Elimina tabella, e dai la conferma

Come cancellare una tabella con PhpMyAdmin

Avrai così eliminato definitivamente la tabella mysql.
Come dicevo ad inizio articolo infatti, questa operazione non è reversibile, e quindi, a meno che tu non abbia fatto un backup prima dell'eliminazione, i dati contenuti nella tabella andranno persi per sempre.

Questa operazione corrisponde al comando drop table di mysql.
Se invece volevi semplicemente svuotare la tabella senza cancellare la struttura, prova a leggere questo mio post.

martedì 25 luglio 2017

Come creare un trigger mysql con PhpMyAdmin

Tempo fa vi avevo spiegato come creare i trigger in mysql, oggi invece vediamo come fare questa operazione senza necessariamente dover essere maestri di sql, grazie all'interfaccia di gestione di PhpMyAdmin.

Creare trigger con phpmyadmin infatti, è decisamente più semplice che scrivere direttamente tutto in sql, anche se comunque, un minimo di sintassi mysql occorre saperla per poter scrivere l'azione che l'automatismo deve compiere sulla tabella.

Vediamo subito come fare.


Come creare un trigger mysql con PhpMyAdmin


Per poter creare un trigger su una tabella mysql tramite phpmyadmin, seguire questi semplici passaggi:
  1. Collegarsi a phpmyadmin con un utente con abbastanza privilegi
  2. Entrare nella tabella o nel db sul quale si vuole attivare l'automatismo
  3. Sulla destra, nel menù in alto nella pagina, cliccare sulla voce Più e poi su Trigger (se ci si trova già sulla tabella desiderata ci sarà direttamente la voce Trigger)
  4. Cliccare su Aggiungi trigger
  5. Inserire tutti i campi richiesti: nome del trigger, tabella che lo richiama, tempo (se deve girare prima before o dopo after l'azione), l'evento scatenante (insert, update, delete), definizione (la sintassi sql da eseguire), definer (l'utente che fa girare il trigger, lasciare pure vuoto), infine cliccare su Esegui

Come creare un trigger mysql con PhpMyAdmin

Se avrete inserito una sintassi sql corretta, al succedersi dell'azione (prima o dopo, a seconda dell'opzione scelta), verrà eseguita automaticamente una nuova istruzione sql.

Una volta creato almeno un trigger phpmyadmin, apparirà l'omonima voce sotto i dettagli della tabella.
Cliccando dunque sulla voce Trigger corrispettiva alla tabella appena triggerata, si entrerà in una sezione con l'elenco dei trigger, dove cliccando su Modifica sarà possibile modificare un trigger già esistente, sempre utilizzando l'interfaccia grafica ed una minima conoscenza di sql.

modificare un trigger già esistente

E con gli automatismi di mysql e phpmyadmin è tutto.

lunedì 24 luglio 2017

Creare campo Auto Increment con PhpMyAdmin

Quando si crea una tabella mysql, uno dei campi più usati, per non dire indispensabile, è l'id primario, un campo numerico di tipo auto incrementale.
Questo genere di campi in pratica, si incrementa da solo dopo ogni inserimento.

Se ad esempio si inserisce una nuova riga in una tabella tramite phpmyadmin, se il campo ID è una chiave primaria di tipo auto incrementale, non sarà necessario occuparsi di compilare anche quel campo, che in automatico verrà incrementato di una unità ad ogni inserimento.

Vediamo dunque come creare una tipica chiave primaria auto increment con phpmyadmin, quindi tramite una comoda interfaccia grafica.


Come creare un campo di tipo Auto Increment con PhpMyAdmin


Qui di seguito le istruzioni da seguire per poter creare un id auto increment tramite phpmyadmin:
  1. Accedere a phpmyadmin con un utente che abbia i privilegi di scrittura/creazione su uno specifico database
  2. Cliccare sul database desiderato
  3. Cliccare sulla voce Nuova, per inserire una nuova tabella
  4. Dopo aver indicato il nome della tabella ed il numero di righe da generare, cliccare su Crea
  5. Adesso, inserire il nome del campo (es. id), indicare come tipo di campo INT, selezionare come Indice la voce Primary e mettere la spunta sul campo A_I, che sta per auto increment
  6. Aggiungere eventuali altri campi ed infine cliccare su Salva

Creare campo Auto Increment con PhpMyAdmin

Avrai così creato una semplice tabella mysql tramite phpmyadmin, una tabella con un campo id auto increment.

Adesso fai pure una prova di inserimento dati, omettendo di compilare il campo id.
Il risultato sarà che il primo inserimento avrà ID 1, il secondo ID 2, il terzo ID 3, ecc...

Comodo no il campo che si incremente da solo ad ogni inserimento, vero?
Questa è una delle funzionalità base dei database relazionali, uno dei campi fondamentali di ogni tabella che si rispetti.
Sono infatti poche le tabelle prive di id chiave primaria autoincrement.

PS Ovviamente, se cancelli dei record e crei dei buchi nella numerazione degli id, se proprio vuoi colmarli devi cambiare nuovamente il tipo di campo id.
Dovrai infatti togliere l'auto increment, altrimenti non potrai modificare la numerazione del campo, dopodichè potrai dunque fare le tue modifiche, ed infine rimettere il campo auto incrementale.

Come disconnettersi da PhpMyadmin

Potrà sembrare una banalità, ma ovviamente, per poter aumentare la sicurezza dei dati dei propri siti custoditi nei database mysql, magari creati in ambiente wamp (ma non solo), è di vitale importanza sapere come disconnettersi da PhpMyadmin.

PhpMyadmin è infatti lo strumento numero uno per la gestione dei database mysql, un client web gratuito che consente di compiere ogni tipo di operazione su tabelle e dati sql.
Va da sè dunque che ogni volta che si finisce di utilizzare questo puntente strumento, soprattutto se si ha fatto accesso come root, è doverso disconnettere PhpMyadmin in modo che nessun malintenzionato possa fare danni sui nostri preziosi dati.

Vediamo dunque come compiere questa semplice operazione da interfaccia grafica.


Come disconnettersi da PhpMyadmin


Per poter scollegare il proprio utente dall'interfaccia di gestione di PhpMyadmin, basta sapere dove cliccare.
Infatti, basta un solo click per disconnettersi da PhpMyadmin.

Devi cliccare sull'icona della porta aperta, la seconda in alto a sinistra nell'interfaccia di gestione del programma.

Come disconnettersi da PhpMyadmin

Con un solo e semplice click, avrai effettuato il logout da PhpMyadmin, e chiunque vorrà poter modificare o anche solo leggere le tue tabelle mysql, dovrà effettuare nuovamente l'accesso.

Di default comunque, PhpMyadmin ha un tempo limite di inattività, superato il quale la sessione scade e bisogna rieffettuare il login.
Se tuttavia è tua intenzione sloggarti subito come root e ricollegarti come un altro utente, seguendo questa procedura potrai farlo in un istante.
In questo modo potrai ad esempio creare un utente con privilegi ridotti, sloggarti da root e testare i permessi appena associati al nuovo user.

Bene, è tutto, fine micro guida su come aumentare privacy e sicurezza in phpmyadmin :)

lunedì 17 luglio 2017

Come svuotare una tabella con PhpMyAdmin

Se hai creato una tabella di test dove hai inserito tanti record di prova e vuoi cancellarli tutti in un colpo solo, sicuramente ti può tornare utile sapere come fare per svuotare una tabella con PhpMyAdmin.

I motivi per poter voler cancellare tutte le righe di una tabella mysql senza però eliminare la tabella stessa possono essere molteplici, e non è certo argomento di questo post elencarli.
Vediamo invece come fare il delete table in mysql tramite l'interfaccia grafica di PhpMyAdmin.

Come svuotare una tabella con PhpMyAdmin


Per poter eliminare tutti i record di una tabella mysql tramite PhpMyAdmin, procedere nel seguente modo:
  1. Accedi al pannello di controllo di PhpMyAdmin con un utente che abbia i privilegi di scrittura sulla tabella da svuotare
  2. Entrare nel database che contiene la tabella
  3. Cliccare con il tasto sinistro del mouse sulla tabella da cancellare
  4. In alto a destra, se le voci del tuo phpmyadmin sono raggruppate, clicca sulla voce Più e poi su Operazioni
  5. Adesso scrolla la pagina in basso fino a trovare la sezione "Rimuovi la tabella o i dati". Qui clicca sulla voce Svuota la tabella (TRUNCATE)

Come svuotare una tabella con PhpMyAdmin

Dopo aver dato la conferma, avrai di fatto fatto svuotare la tabella mysql da phpmyadmin, e come potrai ben immaginare, non potrai più tornare indietro, i dati che erano presenti nella tabella sono belli che cancellati.

Il comando sql che infatti hai appena lanciato sulla tua tabella mysql è il seguente:

TRUNCATE TABLE nome_tabella

Questo comando di fatto, cancella e ricrea la tabella esattamente come era, quindi azzera anche eventuali campi di tipo auto_increment.

Se invece vuoi svuotare una tabella mysql senza perdere la numerazione dei campi auto incrementali, la sintassi da utilizzare è la seguente:

DELETE FROM nome_tabella

E con il mysql ed il potentissimo phpmyadmin per oggi è tutto :)

Come avrai capito, svuotare tabelle mysql con phpmyadmin è un gioco da ragazzi, una cosa fattibile con una manciata di click.
Il problema è invece ripristinare i dati senza avere un backup consistente del database o della tabella in questione :)

mercoledì 28 giugno 2017

Mysql: assegnare permessi a singola tabella

In un precedente post avevo spiegato come dare i privilegi di sola lettura ad un utente mysql con phpmyadmin (leggi qui se vuoi saperne di più), ora invece vediamo come assegnare i permessi ad una singola tabella mysql.

Per compiere questa operazione però, non utilizzerò l'interfaccia grafica di phpmyadmin, ma agirò direttamente in sql, tramite una query.

Vediamo subito come fare.


Come assegnare i permessi ad una singola tabella Mysql


Per poter assegnare ad un utente i permessi su una specifica tabella di un database mysql, occorre ovviamente prima aver creato l'utente.

Se non sai come creare un utente mysql, puoi farlo tramite phpmyadmin seguendo questa guida.

Adesso che hai generato l'account mysql a cui vuoi dare i permessi di scrittura, lettura, o quello che vuoi far fare sulla singola tabella, possiamo entrare un po' più nello specifico di questa guida.
Innanzitutto un piccolo passo indietro però.
In fase di creazione dell'utente è importante non associare alcun privilegio, non bisogna infatti selezionare alcun db o dare permessi di alcun tipo.

Per poter dare il permesso di lettura solo ad una tabella con mysql, usa la seguente sintassi sql:

GRANT SELECT ON nome-database.nome-tabella TO nome-utente@localhost;

Se stai utilizzando phpmyadmin puoi semplicemente cliccare sul database in questione, poi cliccare sulla tab SQL, incollare la sintassi sopra indicata, modificare inserendo i giusti nomi, e cliccare su Esegui.

Questa era la sintassi per la sola lettura di una specifica tabella.
Puoi ovviamente assegnare più permessi contemporaneamente, inserendoli separati da virgola, così:

GRANT SELECT, INSERT, UPDATE, DELETE ON nome-database.nome-tabella TO nome-utente@localhost;

Semplice no?
Grazie a questa facile sintassi potrai agire sui privilegi delle singole tabelle mysql, in modo che l'utente collegato veda solo (ad esempio) una specifica tabella di uno specifico database.

Mysql: assegnare permessi a singola tabella

Ed anche per questo tutorial è tutto... buone query :)

Creare utente in sola lettura su mysql con phpmyadmin

Oggi vediamo di rispondere ad un'esigenza specifica, ovvero quella della creazione di un utente in sola lettura su mysql.
Per far ciò però, per facilitarci la vita, compieremo questa azione usando phpmyadmin.

A cosa può servire un utente in sola lettura?
Semplice, in tutti quei casi in cui si vuole dare accesso ad un database, ad utenti che devono solo poter leggere i dati, senza così correre il rischio di fargli fare dei danni di struttura o di contenuti.

Vediamo dunque come creare un utente sola lettura con phpmyadmin, con pochi semplici click.


Creare utente in sola lettura su mysql tramite phpmyadmin


Per poter aggiungere un utente readonly ad un db mysql, procedere nel seguente modo:
  1. Lancia phpmyadmin ed accedi con le credenziali di root (se usi wamp puoi farlo con l'apposita voce dopo il click sull'icona verde)
  2. Clicca su Account utenti
  3. Crea un nuovo utente (leggi questa guida se non sai come fare) o utilizzane uno già esistente, poi clicca su Modifica privilegi
  4. Clicca in alto sulla tab Database
  5. Seleziona il database o i database a cui vuoi assegnare i permessi, poi clicca su Esegui

    Creare utente in sola lettura su mysql con phpmyadmin
  6. Ora, nella pagina che si aprirà, deflegga tutti i permessi e lascia solo quelli di Select nella tab Dati, poi clicca su Esegui.

Sola lettura

Avrai così creato un utente con privilegi di sola lettura per uno specifico database mysql.
In questo modo, l'utente associato potrà vedere tutti i dati presenti nelle tabelle del database a cui gli hai dato accesso, senza però poterli modificare.

Se invece la tua intenzione era quella di dare accessi in sola lettura solo ad una specifica tabella, leggi questo post.

Quando si dice, fidarsi è bene, non fidarsi è meglio :)

martedì 22 novembre 2016

Come configurare phpmyadmin per renderlo più sicuro

Se hai un sito wordpress o in php in generale, che utilizza come database mysql, quasi sicuramente avrai installato anche phpmyadmin.
Ora, se lo usi solo in locale, non ci sono particolari problemi di sicurezza, ma se decidi di pubblicarlo online, forse è bene modificare alcuni parametri nel file di configurazione, in modo da rendere phpmyadmin più sicuro.


Come configurare phpmyadmin per renderlo più sicuro


Per poter personalizzare phpmyadmin per aumentarne la sicurezza, puoi agire in due modi: modificare a mano il file config.inc.php (se non esistente è da creare nella cartella root del phpmyadmin), oppure usare una comoda interfaccia grafica, raggiungibile da questo indirizzo:
phpmyadmin/setup/

Ovvero, basta aggiungere /setup all'url del nostro phpmyadmin.

Accederemo in una schermata di configurazione, che ci avviserà che dobbiamo creare una cartella chiamata 'config' nella root del phpmyadmin.
Questa cartella dovrà essere ovviamente con i permessi di scrittura.

Una volta creata la cartella, potremo generare il file di configurazione di phpmyadmin, cliccando sul bottone Nuovo server.

Come configurare phpmyadmin per renderlo più sicuro

Nella schermata che si aprirà, avremo diverse tab:
  • Impostazioni di base
  • Autenticazione
  • Configurazione del server
  • Configurazione di memorizzazione
  • Monitoriaggio dei cambiamenti

Entriamo in Impostazioni di base e mettiamo il Nome host del server, localhost se phpmyadmin sta girando il locale.
Lasciamo pure tutti gli altri parametri di default, o abilitiamo la connessione SSL, se disponibile
Volendo, potremo anche cambiare la porta di connessione a phpmyadmin, se lo reputiamo necessario ai fini della sicurezza.

Impostazioni di base

Passiamo poi al tab Autenticazione e scegliamo il tipo di login che si vuole effettuare, di default è quella tramite cookie, ma potremo scegliere tra le seguenti opzioni:
  • cookie
  • config
  • http
  • signon

Autenticazione

Andiamo nella tab Configurazione del server.
Qui possiamo ad esempio mostrare solo alcuni database mysql agli utenti che si collegano a questo specifico phpmyadmin, oppure fare il contrario, escludere dalla visualizzazione alcuni database specifici.
Altre impostazioni di sicurezza utili da settare sono, la disattivazione dell'accesso di root e disabilitare l'accesso ad information_schema.
Oppure usare la sezione Host per consentire o negare l'accesso a phpmyadmin tramite indirizzo ip.

Configurazione del server

Una volta terminati tutti i settaggi, clicchiamo su Applica.

Ora, nella sezione File di configurazione, possiamo settare la lingua predefinita, il server predefinito, ed il tipo di fine del file (windows o linux).
Per generare il nostro file di configurazione di phpmyadmin (config.inc.php), clicchiamo su Salva.

File di configurazione

Adesso volendo, potremo settare altri parametri, andando in Modifica e poi usando i tab di sinistra, entrando nelle seguenti schermate:
  • Panoramica
  • Caratteristiche (dove troviamo l'utilissimo tab Sicurezza, con l'opzione Segreto Blowfish)
  • Query SQL
  • Pannello di navigazione
  • Pannello principale
  • Importa
  • Esporta

Ricordandosi ovviamente di salvare il file di configurazione cliccando alla fine su Salva.

Una volta generato il file di configurazione config.inc.php, spostiamolo dalla cartella config alla root del sito phpmyadmin.
Sovrascriviamo se presente, il vecchio file di config, ed avremo subito attive le modifiche al phpmyadmin, con subito le restrizioni che abbiamo scelto, già impostate.

Infine, per completare la messa in sicurezza del nostro phpmyadmin, cancelliamo la cartella config, in modo che nessuno possa generare altri file di configurazione senza il nostro permesso (file che comunque non risulterebbero attivi se non spostati nella root di phpmyadmin).

Un file di configurazione config.inc.php di phpmyadmin tipico, può essere una cosa del genere:
<?php
/*
 * Generated configuration file
 * Generated by: phpMyAdmin 4.6.4 setup script
 * Date: Tue, 22 Nov 2016 09:05:21 +0000
 */
/* Servers configuration */
$i = 0;
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['only_db'] = array('wordpress');
$cfg['Servers'][$i]['AllowRoot'] = false;
$cfg['Servers'][$i]['DisableIS'] = true;
/* End of servers configuration */
$cfg['blowfish_secret'] = 'uD8s(\\F3G`Y03\',@C#&J".|*;2T,T6-O';
$cfg['DefaultLang'] = 'it';
$cfg['ServerDefault'] = 1;
$cfg['NavigationDisplayServers'] = false;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>


Un'ultima considerazione va al discorso utenti di phpmyadmin che possono vedere solo determinati database.
Si, nel setup di phpmyadmin c'è l'opzione per mostrare solo alcuni database mysql, ma se per caso un utente ha permessi anche su altri db, se va nella sezione query sql, potrà eludere questa configurazione del phpmyadmin, ed agire lo stesso sui database nascosti sui quali ha i permessi.
Quindi in questi casi, è meglio configurare phpmyadmin in modo che solo determinati utenti possano accedere.
Così facendo potremo quindi garantire (ad esempio), che solo un utente possa collegarsi ad un phpmyadmin appositamente configurato per fare le query solo sul database di uno specifico sito internet.

Limitare l'accesso su phpmyadmin ad un utente specifico

Una necessità che può nascere usando phpmyadmin è quella di poter limitare l'accesso ad un utente specifico alla piattaforma, in modo che solo un determinato user possa usarla.

Questa necessità può nascere nel caso si voglia pubblicare all'esterno una versione di phpmyadmin ridotta, in modo da farvi accedere solo determinati utenti con la loro username e password.
Chiamiamo questa cosa all'inglese, phpmyadmin limit access by user, se vogliamo.


Come limitare l'accesso su phpmyadmin ad un utente specifico


Per poter far accedere a phpmyadmin solo uno o più utenti autorizzati, occorre mettere mano al codice sorgente del phpmyadmin.
Si avete capito bene, purtroppo dopo estenuanti ricerche, non ho trovato alcun parametro del config di phpmyadmin che permetta di limitare l'accesso per username, quindi ho dovuto proprio modificare l'applicazione a manina.

Il file che dobbiamo andare a modificare si chiama: AuthenticationCookie.php
e si trova in un percorso come questo:
cartellaphpmyadmin\libraries\plugins\auth

Piccola precisazione: stiamo modificando il file AuthenticationCookie.php perchè l'autenticazione tramite cookie è quella di default di phpmyadmin.
Se però abbiamo cambiato metodo di login, dovremo apportare questa modifica ad uno dei seguenti file (anche loro presenti nella cartella che vi ho già indicato): AuthenticationConfig.php, AuthenticationHttp.php, AuthenticationSignon.php... a seconda del metodo scelto.

Adesso, nel nostro AuthenticationCookie.php, andiamo a cercare la funzione authSetUser() e proprio al suo inizio, incolliamoci queste righe di codice:

if (!empty($_REQUEST['pma_username']))
{
       $qualeuser=trim($_REQUEST['pma_username']);
       if($qualeuser!="username1"&&$qualeuser!="username2") die("Attenzione, utente non abilitato");
}


Limitare l'accesso su phpmyadmin ad un utente specifico

Così facendo, avremo inibito l'accesso a phpmyadmin a tutti gli utenti che non sono username1 e username2... inutile dirvi cosa fare per abilitare altri utenti alla piattaforma.

Questa è una soluzione casereccia ed un po' grezza per limitare l'accesso a phpmyadmin tramite username... ma funziona.
Volendo, smanettandoci un po', potreste anche usare le funzioni per la gestione degli errori di phpmyadmin, in modo da avere un risultato grafico migliore nel caso qualcuno provi ad accedere con un utente non abilitato.

PS è vero che ci sono altri modi per limitare l'accesso ad un phpmyadmin pubblicato all'esterno, ad esempio tramite indirizzo ip, ma non tutti hanno l'ip statico, e potrebbe essere una criticità pubblicare online uno strumento che consente a tutti di potersi loggare su qualsiasi database mysql, dato che phpmyadmin può potenzialmente essere usato per fare la login ai database di siti diversi.

PS se vuoi sapere come migliorare ulteriormente la sicurezza di phpmyadmin leggi questo post.

giovedì 10 novembre 2016

Come duplicare un database mysql con phpmyadmin

Lo sapevi che grazie a phpmyadmin è possibile duplicare un intero database mysql?
Ebbene si, con pochi semplici click potrai avere la copia esatta del tuo database mysql, configurato esattamente come lo era l'originale.


Come duplicare un database mysql con phpmyadmin


Per clonare un database mysql con phpmyadmin, basta seguire questi semplici passaggi:
  1. Entra in phpmyadmin con l'utente root
  2. Entra nel database che vuoi duplicare
  3. Clicca su Operazioni (operations)
  4. Nella sezione Copia il database come, inserisci il nuovo nome del db e spunta i seguenti valori:
    • Struttura e dati
    • CREATE DATABASE prima di copiare
    • Aggiungi valore AUTO_INCREMENT
    • Aggiungi vincoli
    • Adatta Privilegi
  5. Infine, clicca su Esegui.

Come duplicare un database mysql con phpmyadmin

Avrai così duplicato il tuo database mysql e potrai accedervi con gli stessi utenti che già avevano i privilegi sul db originale, oppure potrai creare delle nuove utenze, a tua discrezione.

La duplicazione di un database mysql con phpadmin può essere usata per diversi motivi, uno dei quali è quello di avere una copia di backup del db mysql.

sabato 9 luglio 2016

Errore 200 phpmyadmin quando si apre la struttura di una tabella

Con phpmyadmin sotto windows, nella specifico, con la versione 4.5.2 di phpmyadmin sotto mysql 5.7.9, quando si prova ad aprire la struttura di una tabella mysql di un sito wordpress (io ho provato con la wp_users), da il seguente errore:

Errore nell'elaborazione della richiesta
Codice errore: 200
Messaggio errore: OK


errore 200

Per risolvere l'errore 200 che appare quando si apre una struttura di una tabella da phpmyadmin (errore che tra l'altro impedisce quindi di modificare la struttura di una tabella mysql tramite interfaccia grafica), si può agire nei seguenti 2 modi:

  1. Aggiornare phpmyadmin all'ultima versione stabile disponibile
  2. Cambiare la lingua del phpmyadmin dall'italiano all'inglese

Io ho usato il metodo due e ho risolto subito, riuscendo così ad entrare nella struttura della mia tabella e a modificarla senza più incappare nel terribile errore 200.

mercoledì 1 giugno 2016

Recuperare password persa wordpress con phpmyadmin

Se sei amministratore di un sito wordpress ed hai perso la password di accesso, e se ancora non avevi configurato l'smtp per spedire mail e quindi la funzione recupero password non funziona, c'è comunque la possibilità di recuperare la password persa di wordpress con phpmyadmin.

Per recuperare la password di accesso a wordpress, o meglio, per resettarla / cambiarla, collegati a phpmyadmin.
Poi, seleziona il database del tuo sito wordpress ed entra nella tabella 'wp_users'.

Troverai l'elenco degli utenti, seleziona il tuo utente (se non hai cambiato nome e non ti ricordi neanche la username, la user_login dovrebbe chiamarsi admin o root) e clicca su Modifica.

Recuperare password di wordpress con phpmyadmin

Ora dovrai modificare il campo 'user_pass', selezionando la funzione MD5, cancellando il codice strano che troverai nella colonna Valore (che corrisponde alla tua vecchia password codificata in MD5) e sostituendolo con la tua nuova password.

cambio password wordpress

Una volta inserita la tua nuova password wordpress, vai in fondo alla pagina e clicca su Esegui.

Complimenti, hai appena resettato la tua password di wordpress... ora segnatela, o dovrai ripetere questa procedura :p

Come come? Non ti ricordi neanche la password di phpmyadmin?
E ma allora è grave la cosa... scherzo, leggi questo post.

venerdì 13 maggio 2016

Come importare un database mysql con phpMyAdmin

Se hai un file di backup contenente l'sql del tuo database mysql, con phpMyAdmin è possibile importare l'intero database con tutte le tabelle ed i dati in esso contenuti, con una procedura molto semplice ed intuitiva.

Per importare un database su phpMyAdmin, accedi alla tua istanza phpMyAdmin con un utente con i privilegi di amministratore (root).

Attenzione, se avevi creato un file sql contenente anche l'istruzione per la creazione del database, devi eseguire questa operazione di importazione stando nella pagina principale di phpmyadmin, altrimenti devi selezionare il database nel quale vuoi importare le tabelle ed i dati, cliccandoci sopra.

Clicca dunque sulla voce Importa in alto nella pagina.

Come importare un database mysql con phpMyAdmin

Nella sezione File da importare, clicca su Sfoglia e seleziona dal tuo computer il file con estensione .sql, .gzip, .bzip2 o .zip contentente il database da importare.
Scegli il set di caratteri (nel dubbio lascia utf-8).

Poi, lascia fleggato: importazione parziale, abilita i controlli sulle chiavi esterne.

Seleziona il formato tra le seguenti opzioni:
  • SQL (opzione di default che quasi sicuramente sarà quella che fa al caso tuo)
  • CSV
  • Tabella mediawiki
  • Opendocument spreadsheet
  • Shape file esri
  • XML
Ed eventualmente modifica le operazioni specifiche al formato.
Infine clicca su Esegui per importare il database su questa istanza mysql.

Importare un database mysql con phpMyAdmin esegui

L'ho scritta più complicata di quella che è, in realtà alla fine, nella maggior parte dei casi per importare un nuovo database mysql usando phpmyadmin, basta cliccare su Importa, su Sfoglia e poi su Esegui :)

ps Leggi qui se non sai come importare un db su phpmyadmin.