GNU/Linux >> Linux Esercitazione >  >> Panels >> Webmin

Server database MySQL

In questa pagina il database MySQL e il modulo Webmin che lo gestisce, e sono elencati i passaggi da seguire per creare database, tabelle e utenti.

Vedi Introduzione a MySQL

Questo modulo consente di creare database, tabelle e campi, modificare record e gestire utenti MySQL attraverso una semplice interfaccia web. La sua icona si trova nella categoria Server, e quando si fa clic su di essa, la pagina principale del modulo visualizzerà una tabella di icone per i database esistenti, come mostrato nello screenshot qui sotto (supponendo che MySQL sia installato e in esecuzione).

La pagina principale del modulo MySQL Database Server, subito dopo l'installazione di mariadb-server e l'esecuzione del consigliato /usr/bin/mysql_secure_installazione per rimuovere le violazioni della sicurezza

Se il server del database è in esecuzione ma Webmin non conosce la password corretta con cui accedere, la pagina principale visualizzerà invece un modulo *MySQL Login*. Dovresti inserire il nome utente dell'amministratore nel campo Login' (solitamente root) e la password corrispondente nel campo Password campo. Anche se è possibile inserire il nome utente e la password per qualsiasi utente MySQL, gli utenti non root non possono eseguire attività come la creazione di database e tabelle, quindi nemmeno il modulo sarà in grado di farlo.

Per impostazione predefinita, il modulo è configurato per accedere con il nome utente e la password utilizzati per impostazione predefinita dal pacchetto MySQL per la distribuzione. Solo se l'hai modificato manualmente o tramite Webmin verrà eseguito il Accesso MySQL viene visualizzata la pagina.

Se il server del database non è affatto installato sul tuo sistema, la pagina principale visualizzerà un messaggio di errore come *Il programma client MySQL /usr/bin/mysql non è stato trovato sul tuo sistema*. Controllare il CD di distribuzione o il sito Web per tutti i pacchetti relativi a MySQL e installarli utilizzando il modulo Pacchetti software. Spesso ce ne sono diversi, chiamati qualcosa come mysql, mysql-client, mysql-server e mysql-devel. Ogni distribuzione Linux sembra utilizzare un diverso set di pacchetti, quindi assicurati di installarli tutti.

Su FreeBSD e NetBSD, il modulo prevede l'installazione del pacchetto MySQL per quei sistemi operativi. Su altre varianti di Unix, presuppone che tu abbia compilato e installato MySQL dalla distribuzione del codice sorgente, disponibile da http://www.mysql.com/.

Se il modulo si lamenta che non riesce a trovare il programma mysql anche se lo hai installato, dovrai regolare i percorsi che utilizza. Questo può accadere se lo hai installato dal sorgente invece di usare il pacchetto fornito con la tua distribuzione Linux.

Il modulo MySQL utilizza i comandi SQL per eseguire azioni come la creazione di tabelle, l'aggiunta di campi e la modifica di record. Per eseguire questi comandi Webmin deve connettersi al server del database, operazione che può essere eseguita in due modi. Può eseguire il comando mysql con i parametri corretti e analizzare il suo output, oppure utilizzare la libreria Perl DBI per connettersi direttamente.

Il primo metodo è sempre disponibile, perché il comando mysql è sempre installato quando lo è il server di database. Tuttavia, non è del tutto affidabile poiché alcuni tipi di dati di tabella producono un output che non può essere sempre analizzato. Per questo motivo, dovresti installare i moduli DBI e DBD::mysql Perl. Se uno dei due manca, verrà visualizzato un messaggio nella parte inferiore della pagina principale che richiede di installarne uno o entrambi facendo clic su un collegamento. Questo ti porterà a una pagina nel modulo Perl Modules (trattato nel capitolo 27) in cui DBI e/o DBD::mysql vengono scaricati e installati per te.

Contenuti

Creazione di un nuovo database

La pagina di modifica del database

Quando MySQL viene installato per la prima volta, viene creato un database chiamato mysql che contiene tabelle relative all'autenticazione e al controllo dell'accesso. Se vuoi archiviare i tuoi dati, è meglio creare il tuo database a cui aggiungere tabelle invece di fare confusione con il database mysql. Per fare ciò, i passaggi da seguire sono:

  1. Nella pagina principale del modulo, fare clic su Crea un nuovo database collegamento sopra o sotto la tabella delle icone del database esistente. Questo ti porterà a un modulo per inserire i dettagli del nuovo database.
  2. Immettere un nome per il nuovo database nel Nome database campo. I nomi devono contenere solo lettere e numeri e nessuno spazio.
  3. E' possibile utilizzare il form per creare una tabella iniziale per il nuovo database. Tuttavia, puoi aggiungerne uno con la stessa facilità dopo che è stato creato come Crea una nuova tabella la sezione spiega.
  4. Fai clic su Crea pulsante in fondo al modulo per creare il database. Verrai riportato alla pagina principale del modulo, che ora includerà una nuova icona del database.

Creazione di una nuova tabella

La pagina di modifica della tabella

Le tabelle possono essere aggiunte in qualsiasi momento a database appena creati o esistenti. Ogni tabella ha uno o più campi, ognuno dei quali ha un tipo (come intero, decimale o testo) e una dimensione. I campi possono anche essere indicizzati, per velocizzare le query SQL che cercano i record in base ai valori in quella colonna. Per aggiungere una nuova tabella a un database, i passaggi da seguire sono :

  1. Nella pagina principale del modulo, fare clic sull'icona del database. Questo ti porterà alla pagina di modifica del database mostrata nello screenshot qui sotto, che contiene un'icona per ogni tabella esistente e pulsanti per eseguire varie azioni.
  2. Inserisci il numero di campi che vuoi che la tua nuova tabella abbia nei Campi casella di testo accanto a Crea una nuova tabella pulsante, quindi fare clic sul pulsante. Viene visualizzato un modulo per l'immissione dei dettagli della nuova tabella e dei suoi campi iniziali.
  3. Inserisci un nome per questa tabella nel Nome tabella campo. Dovrebbe essere composto da lettere, numeri e il carattere _ e deve essere univoco all'interno di questo database.
  4. Per copiare i suoi campi da una tabella esistente, selezionala da Copia campi dalla tabella menù. Eventuali campi aggiuntivi che inserisci di seguito nei Campi iniziali la tabella verrà aggiunta dopo quella copiata.
  5. Il Tipo di tabella menu può essere utilizzato per scegliere un tipo di memoria diverso per questa tabella. I tipi più comunemente usati sono:
    MyISAM
    Il tipo di tabella standard per MySQL versioni 3.23 e successive. Sui sistemi operativi che supportano file di grandi dimensioni, le tabelle di queste dimensioni possono avere una dimensione di circa 2.000.000.000 di GB. I file di tabella sono indipendenti dal sistema operativo, le chiavi possono essere lunghe 500 byte e possono essere utilizzate 32 colonne di chiavi in ​​una singola tabella.
    InnoDB
    Un tipo di tabella superiore che supporta transazioni, enormi quantità di dati e funziona molto più velocemente di MyISAM.
    ISAM
    Il vecchio tipo di tabella MySQL standard, ora sostituito con MyISAM. Un file di tabella ISAM può avere una dimensione di soli 4 GB, le chiavi possono essere lunghe solo 256 byte e una tabella può avere al massimo 16 colonne di chiavi.
    Heap
    I dati nelle tabelle Heap vengono archiviati solo in memoria. Questo li rende molto veloci, ma utili solo per dati temporanei poiché il contenuto della tabella andrà perso di MySQL viene spento. Se selezioni Predefinito opzione o se il tipo scelto non è supportato da MySQL sul tuo sistema, verrà utilizzato il tipo MyISAM.
  6. I Campi iniziali la sezione serve per inserire i dettagli dei campi effettivi che conterrà la tua nuova tabella. Ogni riga che inserisci definisce un singolo campo, in base ai valori che inserisci sotto ciascuna delle seguenti intestazioni :
    Nome campo
    Un nome univoco per questo campo, che dovrebbe essere composto da lettere, numeri e il carattere _. Non è una buona idea scegliere un nome che corrisponda a una parola riservata SQL, come select, update o index.
    Tipo di dati
    Da questo menu è necessario selezionare il tipo di dati in questo campo. I più comuni sono varchar (per stringhe di testo di lunghezza variabile) e int (per numeri interi). Vedi i Tipi di campo sezione seguente per un elenco completo dei tipi supportati.
    Digita larghezza
    La dimensione dei dati che possono essere archiviati in questo campo. Questo ha significati diversi a seconda del tipo, ad esempio, per un campo varchar la larghezza è la lunghezza massima del testo, ma per un campo int è il numero massimo di cifre decimali. Ancora una volta, i Tipi di campo la sezione di questo capitolo tratta le larghezze in modo più dettagliato. Se lasci vuota questa casella di testo per un campo, verrà utilizzata la larghezza predefinita. Molti tipi (come blob, testo e data) hanno dimensioni fisse e quindi non dovrebbero avere una larghezza inserita.
    Chiave primaria?
    Se questa casella è selezionata, questo campo farà parte della chiave primaria per la tabella. I campi chiave sono indicizzati da MySQL, in modo che le istruzioni SQL che fanno riferimento a tutti loro nella clausola where vengano eseguite più velocemente. Tuttavia, nessun record può avere gli stessi valori nei rispettivi campi di chiave primaria. Tradizionalmente, il primo campo di una tabella è la chiave. Non tutti i tipi possono essere utilizzati:in genere, un campo di chiave primaria è un int o varchar. Tutte le tabelle devono avere una chiave primaria, in modo che i dati in esse contenuti possano essere modificati in Webmin.
    Autoincremento?
    Se questa opzione è selezionata per un campo numerico, MySQL inserirà automaticamente un numero superiore al massimo nella tabella ogni volta che viene aggiunto un record (a meno che l'istruzione di creazione del record non specifichi un valore in modo esplicito). Questo può essere utile per la generazione automatica di numeri ID ed è spesso abilitato per i campi della chiave primaria.
  7. Dopo aver inserito tutti i campi, premi Crea pulsante in fondo al modulo. Se non è possibile creare la tabella per qualche motivo, verrà visualizzato il messaggio di errore SQL da MySQL. Ciò può verificarsi se il nome di un campo non è valido o se la larghezza di un tipo non ha senso per un tipo. In questo caso, utilizza il pulsante Indietro del browser per tornare al modulo e risolvere i problemi. Una volta che la tabella è stata creata con successo, verrai riportato alla pagina di modifica del database che ora includerà una nuova icona di tabella.

Aggiunta e modifica di campi

Modifica campo

È possibile aggiungere nuovi campi a una tabella e modificare o eliminare quelli esistenti. L'aggiunta di un campo non comporta alcun rischio per i dati esistenti, ma la modifica del tipo o delle dimensioni di uno può comportare la perdita dei dati in esso contenuti e l'eliminazione di un campo. Per aggiungere un nuovo campo, i passaggi da seguire sono:

  1. Nella pagina principale del modulo, fare clic sull'icona del database che contiene la tabella, quindi sull'icona della tabella. Verrà visualizzata la pagina mostrata nell'immagine sottostante, che elenca i nomi, i tipi e altri dettagli di tutti i campi esistenti.
  2. Seleziona il tipo per il nuovo campo dal menu accanto al pulsante *Aggiungi campo di tipo* prima di fare clic su di esso. Vedi i Tipi di campo sezione seguente per un elenco dei tipi e dei loro scopi.
  3. Nel modulo di aggiunta campo visualizzato, inserisci un nome univoco per questo campo nel Nome campo casella di testo. Non ci sono due campi nella stessa tabella che possono avere lo stesso nome e possono essere utilizzati solo lettere, numeri e _.
  4. Se stai aggiungendo un campo char o varchar, devi inserire un numero massimo di caratteri nella Larghezza del tipo casella di testo. Se aggiungi un campo float, double o decimale, devi inserire due numeri in Larghezza e decimali caselle di testo. Il primo è il numero totale di cifre che un valore può contenere e il secondo il numero di cifre a destra della virgola decimale. Per i numeri negativi, il segno meno conta come una cifra, quindi un campo con Larghezza e decimali impostato su 5 e 2 potrebbe memorizzare numeri da 99,99 a 999,99. Per i campi di data, data e ora, ora, BLOB e testo, non è previsto alcun input di larghezza, poiché questi tipi hanno dimensioni fisse o illimitate. Per i campi enum e set, è necessario immettere un elenco di valori possibili nella casella di testo *Valori enumerati*. Per tutti gli altri tipi di campo (come int) la Larghezza del tipo può essere impostato su Predefinito per fare in modo che il campo utilizzi la dimensione predefinita per il tipo scelto, oppure è possibile inserire una larghezza. Per i campi int, questo è il numero massimo di cifre che può contenere un valore in questo campo.
  5. Per i tipi di campi interi (come int e smallint), i pulsanti di opzione *Opzioni tipo* ti consentono di scegliere se i valori in questo campo devono essere riempiti a sinistra con zeri (il Riempi con zeri opzione) o se devono essere non firmati (l'opzione Unsigned opzione). Se Nessuno è selezionato, i valori verranno firmati e non verranno aggiunti zeri aggiuntivi. Per i campi float, double e decimali, le stesse opzioni di tipo vengono visualizzati anche ma senza Unsigned opzione. I campi di questo tipo sono sempre firmati. Per i campi char e varchar, le opzioni Tipo hanno due scelte diverse:Maiuscole/minuscole e senza distinzione tra maiuscole e minuscole . Se è selezionato Insensibile, le query SQL che corrispondono ai valori in questo campo ignoreranno le differenze tra maiuscole e minuscole.
  6. Per evitare che i valori SQL NULL vengano inseriti in questo campo, modificare Consenti null? inserisci No . Questo può essere utile se ogni record deve avere un valore per questo campo e deve essere selezionato se questo campo farà parte della chiave primaria per la tabella.
  7. Per inserire un valore predefinito quando un record viene aggiunto alla tabella e non viene specificato alcun valore per questo campo, compila il Valore predefinito casella di testo. Naturalmente il valore deve essere del tipo corretto per il campo. Se la tua tabella contiene già alcune righe, i loro valori per questo campo verranno impostati su qualsiasi cosa tu inserisca qui quando viene aggiunto il nuovo campo.
  8. Se questo campo sarà la chiave per la tabella, cambia la Parte della chiave primaria? selezione su . Più di un campo fa parte della chiave, nel qual caso è una combinazione di tutti loro.
  9. Infine, fai clic su Crea . Se non ci sono errori nei tuoi input, il campo verrà aggiunto alla tabella e verrai riportato alla pagina di modifica della tabella.

È possibile modificare anche i campi appena creati o esistenti, seguendo i passaggi seguenti. Tuttavia, apportare modifiche al tipo di un campo o ridurne le dimensioni può comportare la perdita di dati se i vecchi valori non sono compatibili con il nuovo tipo. Ad esempio, la conversione di un varchar in un int causerà la perdita di tutti i valori non numerici, tuttavia, la conversione di un int in un varchar è generalmente sicura purché la nuova dimensione sia sufficientemente grande.

  1. Nella pagina principale del modulo, fare clic sull'icona del database che contiene la tabella, quindi sull'icona della tabella. Questo farà apparire la pagina mostrata nello screenshot qui sopra, che elenca i nomi, i tipi e altri dettagli di tutti i campi esistenti.
  2. Fare clic sul nome del campo che si desidera modificare per passare alla maschera di modifica del campo.
  3. Per rinominare il campo, modifica il Nome campo casella di testo.
  4. Per modificare il tipo di campo, selezionarne uno nuovo dal menu *Tipo di dati*. Come spiegato sopra, questo dovrebbe essere fatto con cura.
  5. A seconda del tipo corrente, verranno visualizzati diversi input per modificarne le dimensioni. Questi sono gli stessi spiegati nel passaggio 4 delle istruzioni per la creazione del campo sopra. L'aumento della dimensione di un campo non danneggerà i dati in esso contenuti, ma diminuendolo comporterà il troncamento dei valori se sono più lunghi della nuova dimensione.
  6. Le Opzioni tipo , Consenti valori nulli? , Valore predefinito e Parte della chiave primaria? gli input hanno qui lo stesso significato delle fasi di creazione del campo. Modificali se desideri modificare queste opzioni per il campo esistente.
  7. Quando hai finito, clicca su Salva pulsante in fondo al modulo. Il campo verrà immediatamente aggiornato e tutti i dati in esso contenuti verranno modificati o troncati a seconda dei casi.

Un campo esistente può essere rimosso facendo clic su Elimina pulsante nel modulo di modifica del campo invece di Salva . Tutti i dati in esso contenuti verranno immediatamente eliminati per sempre. Naturalmente non è possibile eliminare l'ultimo campo di una tabella.

Tipi di campo

MySQL supporta la maggior parte degli stessi tipi di campo di altri database SQL. La migliore fonte di informazioni sui tipi è la documentazione ufficiale di MySQL, all'indirizzo http://dev.mysql.com/doc/refman/4.1/en/data-types.html (forMySQL 3 e 4) o http://www .mysql.org/doc/refman/5.0/en/data-types.html (per MySQL 5).

Le versioni più recenti di MySQL potrebbero introdurre più tipi, ma dovresti comunque essere in grado di modificare i dati nei campi di tipi non supportati.

Visualizzazione e modifica del contenuto della tabella

Il modulo MySQL consente di visualizzare il contenuto di qualsiasi tabella in qualsiasi database. Le tabelle che hanno una chiave primaria possono avere i loro record modificati o eliminati e anche quelli nuovi aggiunti. Sfortunatamente, non c'è modo di modificare il contenuto di una tabella senza una chiave, poiché il modulo ha bisogno di un modo per identificare record specifici. Tuttavia, tutte le tabelle in un database dovrebbero averne una.

Per visualizzare il contenuto di una tabella, attenersi alla seguente procedura:

  1. Nella pagina principale, fare clic sull'icona del database che contiene la tabella, quindi sull'icona della tabella stessa.
  2. Nel modulo di modifica della tabella, fai clic su Visualizza dati pulsante in basso. Questo ti porterà a una pagina contenente una tabella delle prime 20 righe della tabella.
  3. Se la tabella contiene più righe di quante possono essere visualizzate su una pagina, l'inizio e la fine dell'intervallo visibile e il numero totale di righe verranno visualizzati in alto. Accanto ad esso ci sono le frecce sinistra e destra per passare ai 20 record successivi o precedenti.
  4. Per le tabelle di grandi dimensioni, viene visualizzato anche un modulo di ricerca nella parte inferiore della pagina. Per utilizzarlo, seleziona un nome di campo dal primo menu, un tipo di confronto dal secondo e inserisci un valore da cercare nella casella di testo finale. Quando la Cerca viene cliccato il pulsante, verranno visualizzate solo le righe per le quali il campo scelto corrisponde. Per tornare alla visualizzazione di tutti i record, fai clic su Reimposta ricerca link che ora appare sopra la tabella. Il contiene il tipo di confronto trova i record in cui il campo contiene il testo inserito, mentre il corrisponde type trova i record per i quali il valore del campo corrisponde a un modello SQL utilizzato in una clausola like. In un tale schema, % corrisponde a qualsiasi stringa di caratteri e _ corrisponde a qualsiasi singolo carattere, proprio come * e ? fare al prompt della shell.
  5. Quando visualizzi una tabella di grandi dimensioni, un pulsante con l'etichetta Vai a viene visualizzato anche in fondo alla pagina. Se si immette un numero nel campo adiacente e si fa clic sul pulsante, il display si sposterà immediatamente su quella riga.

Se la tabella ha una chiave primaria, questa stessa pagina può essere utilizzata anche per modificare, eliminare o aggiungere record. I record da modificare devono prima essere selezionati utilizzando le caselle di controllo a destra di ogni riga, oppure il pulsante Seleziona tutto e Inverti selezione collegamenti. Quando si fa clic sul pulsante *Modifica righe selezionate*, la pagina verrà nuovamente visualizzata con i valori di tutti i record scelti nelle caselle di testo. Apporta le modifiche che desideri e fai clic su Salva pulsante in fondo alla pagina per aggiornare il database. Oppure premi Annulla se vuoi interrompere la modifica senza salvare le modifiche.

Per eliminare i record, selezionali utilizzando le stesse caselle di controllo e gli stessi link di selezione, quindi fai clic su Elimina righe selezionate pulsante. I record scelti verranno immediatamente rimossi dal database senza ulteriori conferme.

Per aggiungere un nuovo record, fai clic su Aggiungi riga pulsante sotto la tabella. Apparirà una riga aggiuntiva contenente caselle di testo vuote in cui inserire nuovi dettagli. Facendo clic su Salva aggiungerà il nuovo record alla tabella e sposterà il display in modo da poter vedere la nuova riga. In alternativa, puoi fare clic su Annulla se cambi idea sull'aggiunta di un record.

Normalmente, i record vengono modificati o aggiunti nei campi di testo che compaiono nella tabella nelle colonne appropriate. Tuttavia, se si sta modificando una tabella che contiene un BLOB o un campo di testo o se è abilitata l'opzione di configurazione del modulo *Utilizza l'interfaccia per l'aggiunta di righe verticali*, viene utilizzato un layout diverso. Invece, le caselle di testo per i campi sono elencate in una casella separata all'interno o sotto la tabella, con le etichette dei nomi dei campi a destra. Per i campi di testo o BLOB, viene visualizzata una casella di testo in modo da poter inserire più righe di testo, se necessario.

Eliminazione di tabelle e database

Quando una tabella viene rimossa da un database, tutti i record ei campi in essa contenuti andranno persi. Puoi rimuovere qualsiasi tabella, anche se eliminare quelle nel database mysql è una cattiva idea poiché contengono importanti informazioni sul controllo dell'accesso MySQL. Per rimuoverne uno, i passaggi da seguire sono:

  1. Nella pagina principale del modulo, fare clic sull'icona del database da cui si desidera rimuovere la tabella, quindi sull'icona della tabella stessa.
  2. Fai clic sulla Tabella a discesa pulsante sotto l'elenco dei campi. Questo ti porterà a una pagina di conferma che ti chiede se sei sicuro e ti dice quanti record verranno eliminati.
  3. Per andare avanti, fai clic su Tabella a discesa pulsante di nuovo. Una volta rimosso, tornerai all'elenco delle tabelle sopravvissute nel database.

È anche possibile eliminare un intero database e tutte le tabelle e i record in esso contenuti. Qualsiasi database può essere rimosso, ma eliminare il database mysql è una pessima idea. Come al solito, a meno che tu non abbia eseguito un backup, non c'è modo di annullare l'eliminazione.

Supponendo che tu voglia davvero eliminare un database, segui questi passaggi:

  1. Nella pagina principale, fare clic sull'icona del database che si desidera rimuovere.
  2. Accedi al Rilascia database pulsante sotto l'elenco delle tabelle. Verrà visualizzata una pagina di conferma, che ti dice quante tabelle e record andranno persi se vai avanti.
  3. Per continuare con l'eliminazione, fai clic su Rilascia database pulsante e verrai riportato alla pagina principale del modulo al termine.
  4. In alternativa, puoi scegliere di rimuovere tutte le tabelle e i relativi record facendo clic su Elimina semplicemente tutte le tabelle invece. Il database stesso verrà lasciato vuoto.

Esecuzione di comandi SQL

Il modulo MySQL fornisce anche una semplice interfaccia per eseguire comandi SQL su un database e visualizzarne l'output. I passaggi per utilizzarlo sono:

  1. Nella pagina principale, fai clic sull'icona del database in cui desideri eseguire i comandi.
  2. Fare clic su Esegui SQL pulsante sotto l'elenco delle icone della tabella. Questo ti porterà a una pagina per inserire comandi SQL, eseguire file di comandi e caricare dati nel database.
  3. Immettere un comando SQL qualsiasi nella casella di testo nella parte superiore della pagina e premere Esegui pulsante. Se si è verificato un errore nella sintassi SQL o se il comando non può essere eseguito, verrà visualizzato il messaggio di errore di MySQL. In caso contrario, verrà mostrata una tabella dei risultati dell'SQL (se presente). Solo le istruzioni SELECT producono risultati - UPDATE, INSERT e altri comandi che modificano i record no.
  4. Al termine della visualizzazione dei risultati, utilizzare il modulo *Return to Execute SQL* per tornare al modulo.
  5. Ogni comando eseguito correttamente viene aggiunto a una cronologia per il database. Puoi eseguire nuovamente un comando SQL precedente lasciando vuota la casella di testo e selezionandola dal menu sottostante, quindi premendo Esegui . Per cancellare la cronologia dei comandi, fai clic su Cancella cronologia pulsante invece. Questo può essere utile se è ingombra di vecchie istruzioni che non è necessario riutilizzare.

La stessa pagina può essere utilizzata per eseguire più comandi da un file di testo e visualizzarne l'output. Poiché il processo è esattamente lo stesso del ripristino di un backup, viene spiegato nella parte relativa al ripristino di Backup e ripristino di un database sezione sottostante.

Backup e ripristino di un database

MySQL Backup di tutti i database

Se uno dei database contiene informazioni importanti, è necessario eseguirne regolarmente il backup nel caso in cui un errore del disco o un errore SQL provochi la perdita di dati. È inoltre consigliabile creare un backup prima di eseguire operazioni potenzialmente rischiose, come modificare il tipo di un campo o eseguire un'istruzione SQL complessa che modifica molti record.

Per utilizzare il modulo per effettuare un backup, i passaggi da seguire sono:

  1. Nella pagina principale, fare clic sull'icona del database di cui si desidera eseguire il backup.
  2. Fare clic su Database di backup pulsante sotto l'elenco delle tabelle. Questo ti porterà a un modulo per inserire la destinazione e le opzioni del backup.
  3. Nel Backup su file campo, immettere il percorso completo del file in cui deve essere scritto il backup, ad esempio /tmp/backup.sql . Se il file esiste già, verrà sovrascritto.
  4. Per limitare il backup solo ad alcuni record, deseleziona l'opzione Tutte le righe' per il campo *Solo le righe di backup che corrispondono alla clausola where* e inserisci una clausola SQL WHERE nel campo adiacente, ad esempio foo ='bar . Funziona solo se la clausola è valida per tutte le tabelle nel database, quindi nell'esempio tutte le tabelle dovrebbero avere un foo campo.
  5. Se il Aggiungi istruzioni della tabella di rilascio per il backup? il campo è impostato su , il backup includerà istruzioni SQL per eliminare le tabelle esistenti con lo stesso nome durante il ripristino. Ciò significa che se lo ripristini su un altro sistema, i dati in quelle tabelle verranno sostituiti con i nuovi dati dal backup. Se No è selezionato, i dati ripristinati verranno aggiunti a quelli già esistenti. La scelta migliore dipende davvero da cosa stai cercando di fare. Per un backup normale, dovresti selezionare in modo che tutti i dati corrotti o in conflitto vengano rimossi al ripristino del backup. Tuttavia, se stai trasferendo i record a un altro sistema o database, No dovrebbe invece essere selezionato in modo che i record esistenti nella tabella di destinazione non vengano persi.
  6. Per eseguire il backup, fai clic su Esegui backup ora pulsante nella parte inferiore del modulo e verrà visualizzata la pagina che mostra il successo o il fallimento.

I file di backup MySQL sono in effetti solo elenchi di istruzioni SQL CREATE TABLE e INSERT che quando vengono eseguite ripristinano il database allo stato in cui si trovava quando è stato eseguito il backup. Sebbene questo utilizzi più spazio su disco rispetto a un formato binario più compresso, ti consente di visualizzare e modificare facilmente il file se lo desideri. Significa anche che un file di backup può essere utilizzato su un sistema con un'architettura diversa, poiché il file contiene solo testo ASCII.

Se si dispone di un database utilizzato per un importante scopo di produzione, è necessario eseguirne il backup regolarmente, ad esempio una volta al giorno. Invece di seguire le istruzioni di cui sopra ogni giorno, puoi utilizzare il modulo Lavori Cron pianificati (trattato nel capitolo 10) per creare un lavoro che esegua il backup per te. Per scoprire quale comando eseguire, utilizzare le istruzioni precedenti per eseguire prima un backup e quindi visitare il modulo Registro azioni Webmin (trattato nel capitolo 54) per vedere il comando utilizzato.

Una volta che un file di backup è stato creato, può essere ripristinato sullo stesso sistema o su un altro server che esegue MySQL. A seconda di ciò che Aggiungi istruzioni della tabella di rilascio per il backup? era impostato su al momento del backup, il contenuto di tutte le tabelle esistenti con gli stessi nomi di quelle nel backup potrebbero essere eliminate. Pertanto, in genere dovresti ripristinare solo se le tabelle non esistono o contengono dati obsoleti o non validi che desideri sovrascrivere.

Poiché un file di backup è solo un elenco di istruzioni SQL, il processo di ripristino implica solo l'esecuzione di tutti i comandi nel file. Ciò significa che puoi seguire questi stessi passaggi anche per eseguire un file dei tuoi comandi:

  1. Nella pagina principale del modulo, fare clic sull'icona del database in cui ripristinare il backup.
  2. Fare clic su Esegui SQL e scorrere fino alla sezione *Seleziona il file dei comandi SQL da eseguire sul database*.
  3. Se il file di backup si trova sul sistema che esegue MySQL e Webmin, scegli Da file locale opzione e immettere il percorso completo del file nel campo di testo adiacente. Se il backup è sul PC su cui è in esecuzione il tuo browser, scegli *Dal file caricato* e usa Sfoglia pulsante per selezionare il file di backup.
  4. Premi Esegui pulsante per ripristinare il backup o eseguire i comandi SQL nel file. Verrà visualizzata una pagina che elenca tutto l'output di MySQL durante l'esecuzione. In genere non ce ne saranno a meno che non si verifichi un errore o il file contenga istruzioni SELECT.

Gestione degli utenti MySQL

Permessi utente MySQL

Il tuo server di database MySQL richiede a tutti i client di autenticarsi con un nome utente e una password prima che possano eseguire i comandi SQL. Ha le sue tabelle di utenti, password e permessi che vengono consultati quando un client tenta di accedere, piuttosto che i file utente Unix /etc/passwd e /etc/shadow. È possibile definire autorizzazioni dettagliate per ciascun utente, al fine di limitare i tipi di istruzioni SQL che può utilizzare, gli host client da cui può connettersi e i database, le tabelle e i campi che può modificare.

In genere, dopo la prima installazione di MySQL, solo l'utente root è in grado di accedere. Questo utente avrà le autorizzazioni per accedere a tutti i database e le tabelle ed eseguire tutte le azioni, quindi viene generalmente utilizzato solo per scopi di amministrazione. Se si desidera scrivere un'applicazione che utilizzi un database, è una buona idea creare un altro utente a tale scopo e configurare l'applicazione per l'accesso come tale utente.

L'installazione standard di MySQL crea anche un Anonimo utente senza password e accesso ai database a partire da test. Questo utente speciale viene utilizzato per qualsiasi tentativo di accesso per il quale non viene trovato nessun altro utente corrispondente. Gli utenti anonimi sono spiegati più dettagliatamente di seguito.

Crea utente

Per aggiungere un utente, i passaggi da seguire sono:

  1. Nella pagina principale del modulo, fai clic su Autorizzazioni utente icona. Questo ti porterà a una pagina che elenca gli utenti esistenti, come mostrato nello screenshot qui sotto.
  2. Fai clic sul link Crea un nuovo utente sopra o sotto la tabella per andare al modulo di creazione dell'utente.
  3. Nel Nome utente campo, seleziona il secondo pulsante di opzione e inserisci un nome per questo utente. Anche se è possibile creare più voci utente con lo stesso nome come spiegato più avanti, questa nuova dovrebbe essere univoca.
  4. Supponendo che tu voglia che l'utente disponga di una password, cambia la Password campo su Imposta su e inserirlo nel campo adiacente. Se scegli Nessuno , non è necessario fornire alcuna password e i tentativi di accesso con una password verranno rifiutati.
  5. Per consentire a questo utente di accedere solo da un host specifico, seleziona il secondo pulsante di opzione in Host campo e immettere un nome host nella casella di testo. Il nome host deve essere lo stesso di quello restituito da una ricerca inversa dell'indirizzo IP del client, che sarà quasi sempre un nome host completo come pc.example.com anziché solo server . Puoi invece inserire un indirizzo IP o un nome host o un modello SQL di indirizzo IP come %.example.com . Per consentire a un utente di connettersi solo dallo stesso sistema su cui è in esecuzione il server di database, immettere localhost come ospite. Se Qualcuno è selezionato, questo utente sarà in grado di connettersi da qualsiasi host. Fai attenzione quando crei un utente che ha un host specificato:se tenta di connettersi da qualche altra parte ed esiste un utente anonimo con un host corrispondente, verrà invece registrato come utente anonimo!
  6. Nelle Autorizzazioni list, select the entries for the actions that you want the user to be able to perform. For an application user, being able to select, insert, update and delete records is usually enough. Un-trusted users should never be given permissions beyond Drop tables , as that would allow him to harm the database, access arbitrary files or enhance his own permissions. If a user does not have any permissions at all, he will be unable to connect unless some have been granted for a specific database or host (as explained in the next section).
  7. To create the user, click the Save pulsante in fondo alla pagina. The new MySQL login will be usable immediately, and will have access to all databases and tables with the permissions specified in step 6. See the next section in this chapter for information on how to restrict a user to only certain databases or tables.

When a client tries to login, MySQL searches for the first matching user and host in the list of users. The server always checks entries with specific hostnames before those that allow any host, and Anonymous user entries before those for a specific user. This means that a user may end up with the Anonymous permissions even though he is in the user list with greater privileges. Due to the confusion this can cause, I recommend deleting all anonymous user entries unless you fully understand their effects.

It is possible and even useful to have multiple entries for the same user in the list, as long as they have different hostnames. For example, if you want to allow the user fred to login from only clients server.example.com and www.foo.com , you would need to create two entries from fred with the Host field set differently. The should have the same password and permissions though, unless you want to require a different password or grant different permissions depending on the host the user is connecting from.

New and existing users can be edited by clicking on their names in the list, which brings up an editing form almost identical to the one used for creating a user. The only different is that the Password field has a Don't change option which is selected if the user has a password, and which tells Webmin to leave the password unchanged when the user is saved. After making changes, click the Save button at the bottom of the form to update the user in the database. Or to delete it, hit the Delete pulsante. If there are multiple entries for the same user, you will have to update them all individually if changing the password or permissions.

Unless you have already created another administration user with full privileges, the root user should not be deleted. Because this Webmin module normally logs in a root itself, modifying or removing this user may force you to login to MySQL again as explained in the introduction to the module earlier in the chapter. By deleting the root user or removing its privileges, it is possible to deny yourself access to the database, which can only be fixed using command-line programs like mysqladmin.

Like many other modules, the MySQL Database Server module can be configured to automatically create, update or delete a MySQL user when the same thing happens to a corresponding Unix user. This can be useful if you allow some of the Unix users on your system to access databases, and want to keep their passwords and usernames synchronized.

To set up synchronization, the steps to follow are:

  1. On the module's main page, click on the User Permissions icona. Scroll down to the form below the list of existing MySQL users.
  2. If you want a new MySQL user to be created for each new Unix user, check the Add a new MySQL user when a Unix user is added scatola. Then select the permissions that should be granted to the user from the list to the right. When a MySQL user is automatically added, its will be allowed to login from any host.
  3. If you want MySQL users to be renamed or have their passwords changed when the same thing happens to matching Unix users, check the *Update a MySQL user when the matching Unix user is modified* box. If more than one entry exists for the same user, they will all be effected.
  4. To have a MySQL user deleted at the same time as the Unix user of the same name, check the *Delete a MySQL user when the matching Unix user is deleted* box. If more than one entry exists for the same user, they will all be deleted.
  5. Fai clic su Salva button to make the new synchronization settings active.

Managing database, host, table and field permissions

Users created by following the instructions in the previous section have access to all databases on the server with the same permissions. However, it is possible to give a user access to only specific databases by following the steps below:

  1. Make sure the user does not have any permissions on the User Permissions page. Any that he has set here will apply to all databases, which is not what you want.
  2. On the module's main page, click on the Database Permissions icona. This will bring up a list of users and the privileges they have for specific databases.
  3. Click on the Create new database permissions link above or below the list.
  4. In the form that appears, the Databases field controls which databases he will have access to. You can either select the Any radio button to grant permissions for all databases, select the second radio button to grant access to the database selected from the menu, or choose the final button to grant access to databases whose names match the SQL pattern entered into the adjacent field. Typically the second option is the one that you want to select, so that you can grant access to a single database. If the user should have access to more than one, you will need to add multiple database permissions entries.
  5. In the Username field, select the second radio button and enter the name of the MySQL user to whom access should be granted.
  6. The Hosts field allows you to choose which client host(s) the user will be able to connect to the database from. You should normally select Any , which gives him access from anywhere - unless the user himself is prevented from connecting from some hosts, explained in the Managing MySQL users section .
  7. From the Permissions list, select the privileges that the user should have for the chosen database. These will be added to any that are set for the user on the User Permissions page.
  8. Fai clic su Salva button to add and activate the new permissions. You will be returned to the database permissions list.

You can edit database permissions by clicking on a database name from the list. This will take you to an editing form identical to the creation form in which the database, username, hosts or permissions can be changed. The Save button saves and activates any changes, while the Delete button removes the permissions from the database.

When MySQL is first installed, database permissions for the Anonymous user in the test and test_% databases will be created automatically. Assuming the Anonymous user exists in the User Permissions page, these give anyone who can connect to MySQL access to records in those databases. Unless you are making use of anonymous logins, these database permissions can be safely deleted.

MySQL also allows permissions to be granted on databases to all users connecting from certain client hosts. This can be useful if you want to increase the privileges that a particular client system has, such as a web server connecting to your database server. To add host permissions, the steps to follow are:

  1. On the module's main page, click on the Host Permissions icona. This will take you to a page listing existing permissions granted to client hosts, if any. When MySQL is installed, no permissions of this type are initially defined.
  2. Click on the Create new host permissions to bring up a form for adding a new host permissions entry.
  3. If the permissions should apply to all databases, select the Any radio button in the Databases campo. If they are for only a specific database, select the second radio button and choose a database from the menu next to it. If you want to grant permissions to databases whose names match an SQL pattern, select the final radio button and enter the pattern into the adjacent text field.
  4. In the Hosts field, select the second radio button and enter a hostname, IP address or hostname or IP pattern (like %.example.com or 192.168.1.% ) into the field next to it. Selecting the Any button isn't particularly useful.
  5. From the Permissions menu, choose those privileges that will be granted to all users connecting to the chosen database from the specified host. These will be added to any other permissions that are granted on the User Permissions or Database Permissions pages.
  6. Fai clic su Salva button to activate the new client host permissions.

As usual, you can edit existing an host permissions entry by clicking on the database name from the list, editing fields and clicking Save . Or you can remove it with the Delete pulsante.

MySQL also supports the granting of permissions to specific tables and fields to users connecting from certain hosts. Webmin allows you to set these up by clicking on the Table Permissions and Field Permissions icons on the main page. However, as they are quite complex and rarely used, they are not covered in this chapter.

Module access control

Normally a Webmin user who has access to the MySQL Database Server module can manage all databases and use all of the module's features. However, as WebminUsers explains it is possible to restrict what a user can do with a module. In this case, you can grant access to only certain databases, control the directory that backups can be written to, and restrict the creation and deletion of databases. This can be useful if various databases on your server are owned by different people, and you want to give each of them a Webmin login to manage only those that belong to them.

To set up this kind of module access control, the steps to follow are:

  1. In the Webmin Users module, click on MySQL Database Server next to the name of a user or group who has access to the module.
  2. On the access control form, change the Can edit module configuration? campo su No . This is necessary to prevent the user changing the programs that the module uses for accessing the database.
  3. In the Databases this user can manage field, choose the Selected opzione. Then select the databases he should have access to from the list below.
  4. Change the Can create new databases? campo su No . There is no reason that a restricted user of this type should be able to add new databases.
  5. Unless you want the user to be able to delete his own databases, change the Can drop databases? campo su No . Leaving it set to Yes is harmless though, as he will only be able to delete those that you have granted him access to.
  6. Change the Can stop and start MySQL server? campo su No .
  7. If you want this Webmin user to be able to control access by MySQL users to his databases, change the Can edit permissions? field to Only for managed databases . This will give him access to the Database, Host, Table and Field Permissions pages, but limit him to viewing and editing entries for the databases he is granted access to. To deny access to MySQL permission management altogether, select No invece. Choosing Yes is a bad idea, as it would allow the user to create MySQL users with access to all databases on the server.
  8. If the Can edit table data? field is set to No , the user will not be able to create tables, edit fields, run SQL commands or make backups. Instead, he will only be able to use the module's record viewing and editing feature.
  9. When the Login to MySQL as field is set to *Username from Module Config*, all database actions performed by this user will be done as the MySQL user set in the module configuration, typically root. However, you may want the Webmin user to login as a less-privileged MySQL user as an additional security precaution. This way, even if the user finds a way to defeat the module's restrictions he will still not be able to execute SQL commands as root. To use a different login, select the Username option and enter a valid MySQL login and password into the adjacent fields. This alternate user must have the privileges to perform everything that the module needs to do though, such as creating tables and possibly granting permissions.
  10. Normally Webmin runs the mysqldump command to make backups as the root Unix user, and allows the backup file to be created anywhere on your system. Because this may allow important files to be overwritten, you should change the *Backup file directory* field to a safe directory for creating backups in, such as /home/someuser/backup . Better still, the Write backup as Unix user field should be changed to a user other than root, such as the Webmin user's Unix login. The mysqldump command will be run as this user instead, which prevents it from being used to overwrite files.
  11. Finally, to make the new access control restrictions active, click Save .

If you want to give a large number of users access to MySQL though a web interface, an alternative to configuring the Webmin module for each user is to install Usermin. It has a MySQL module with an identical interface, and can be easily configured to limit which databases are visible. See chapter 47 for more information.

Module Configuration

Module Configuration

Like many other modules, this one has several options that you can set by clicking on the Module Config link nell'angolo in alto a sinistra della pagina principale. Those fields listed under *Configurable option* relate to the module's user interface and the method it uses to connect to the database, while those under *System configuration* define the paths to the MySQL programs and files.

Unless you have installed the database server in a different directory to the default for your operating system, fields in the second section do not generally need to be changed. This can happen if you installed MySQL from the source code instead of using the package supplied with your Linux distribution, or if you have two copies of MySQL installed and are configuring a clone of the module (covered in Webmin Configuration) to manage the second install.

If you have multiple copies of MySQL installed on your system, you should clone this module once for each server. The last three configuration options can then be customised to connect to each of the MySQL installs, which will probably be listening on different ports or use different socket files.


Webmin
  1. Domande frequenti sulla distribuzione di MySQL

  2. Installa MySQL Server 5.6 in CentOS

  3. Come installare il server di database MySQL su CentOS

  4. Il server MySQL è installato per impostazione predefinita?

  5. Come configurare un database slave MySQL

I 5 migliori sostituti gratuiti per MySQL Server

Elenca le tabelle in un database MySQL

Come consentire l'accesso remoto al server di database MySQL

Come creare un database in MySQL

Panoramica di MySQL

Arresto del server di database MySQL:mysqld non riuscito