Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Server/MySql"
Differenze tra le versioni 1 e 24 (in 23 versioni)
Versione 1 del 07/04/2007 16.56.53
Dimensione: 9903
Commento: Creata pagina che andrà linkata in server. apporre redirect in vecchia pagina
Versione 24 del 05/05/2007 09.27.26
Dimensione: 5187
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
#format wiki
#language it
Linea 2: Linea 5:
||<tablestyle="float:right; font-size: 0.9em; width:50%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents]]|| ||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice''' [[BR]] [[TableOfContents]] ||
Linea 4: Linea 7:
= Premessa =
In questa pagina ho raccolto e riordinato una serie di appunti presi mentre leggevo varie guide presenti nel web che ho parzialmente elencato al paragrafo "Links utili", se quanto segue stuzzicherà la vostra curiosità, non dovrete fare altro che una rapida ricerca e troverete tutto il materiale necessario per aprofondire l'argomento. [[BR]]
Buona lettura...
= Introduzione =
Linea 8: Linea 9:
== Cos'è MySql ==
MySQL (si pronuncia My Ess Que Ell) è il più diffuso database Open Source basato sul linguaggio SQL. Questo prodotto viene fornito dall'azienda MySQL AB che sviluppa il proprio business erogando servizi basati su MySQL stesso. MySQL è un RDBMS, ossia un sistema di gestione per database relazionali. Un database è un insieme strutturato di dati, dalla lista della spesa, all'elenco dei titoli presenti in una grossa libreria. MySQL si occupa della strutturazione e della gestione a basso livello dei dati stessi, in modo da velocizzarne l'accesso, la modifica e l'inserimento di nuovi elementi. L'acronimo RDBMS significa "Relational Data-Base Management System" e sta ad indicare che MySQL offre la possibilità di conservare i dati non in un enorme "storeroom" ma in diverse tabelle, in modo di velocizzarne l'accesso. L'acronimo SQL significa "Structured Query Language" ed indica il linguaggio standard di interrogazione dei Data-Base.
attachment:logo.gif
Linea 11: Linea 11:
== Installare MySql ==
L'installazione è semplicissima: avviare Synaptic e selezionare il pacchetto [[BR]]
'''mysql-server''' [[BR]]
che provvederà ad installare l'ultima versione del server e del client (attualmente la 5.0.22) nel vostro sistema.
'''My``Sql''' è il più diffuso database Open Source basato sul linguaggio '''SQL'''. Questo prodotto viene fornito dall'azienda MySQL AB che eroga servizi basati sullo stesso '''My``Sql'''.

Un database è un insieme strutturato di dati, dalla lista della spesa, all'elenco dei titoli presenti in una grossa libreria. '''My``Sql''' si occupa della strutturazione e della gestione a basso livello dei dati stessi, in modo da velocizzarne l'accesso, la modifica e l'inserimento di nuovi elementi. L'acronimo RDBMS significa "Relational Data-Base Management System" e sta ad indicare che '''My``Sql''' offre la possibilità di conservare i dati non in un enorme ''store-room'' ma in diverse tabelle, in modo di velocizzarne l'accesso. L'acronimo '''SQL''' significa ''Structured Query Language'' ed indica il linguaggio standard per le interrogazione delle basi di dati.

La presente guida spiega l'uso delle funzioni principali di '''My``Sql'''. Alla fine di questo documento è possibile trovare i riferimenti alla documentazione ufficiale e ad alcune delle guide presenti in rete.

= Installazione =

Per installare '''My``Sql''' è necessario installare i pacchetti ''mysql-server'' e ''mysql-admin'', reperibili dai [:Repository:repository] ufficial, con uno fra i vari strumenti messi a disposizione dal sistema: [:SynapticHowto:Synaptic], [:AdeptHowTo:Adept] e [:Apt:apt-get].
Linea 18: Linea 23:
== Assegnare una password a root ==
Ad installazione ultimata, l'utente root potrà accedere senza password, converrà assegnargliene una quanto prima. [[BR]]
''Nota: per evitare problemi non modificate mai le tabelle del database mysql, almeno fino a che non avrete compreso il meccanismo delle protezioni, esse infatti contengono tutte le informazione per la gestione dei permessi degli utenti.''
== Impostare una password di amministrazione ==
Linea 22: Linea 25:
Per assegnare la password lanciare il seguente comando: Ad installazione ultimata, l'utente '''root''' potrà accedere senza password: sarà dunque necessario assegnargliene una quanto prima.

Per impostare la password di amministrazione è sufficiente lanciare il seguente comando:
Linea 24: Linea 29:
mysqladmin –u root PASSWORD password_da_assegnare mysqladmin –u root -p pwd
Linea 26: Linea 31:
Naturalmente sostituiremo "password_da_assegnare" con la password che desideriamo.
Linea 28: Linea 32:
Per cambiare la password in qualsiasi momento scriveremo:
{{{
mysqladmin –u root –p PASSWORD nuovapassword_da_assegnare
}}}
Dopo la pressione del tasto "Invio" sarà richiesta la vecchia password e il cambiamento avrà effetto.
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''La dicitura «pwd» va sostituita con la password desiderata.'' ||
Linea 34: Linea 34:
== Connettersi con un nome utente esistente ==
Lanciare il seguente comando da terminale:
== Connettessione al database ==

D
igitare il seguente comando in una finestra di terminale:
Linea 39: Linea 40:
Dove "indirizzo_host" sarà l'IP del server (in locale localhost) e "nome_utente" sarà ovviamente il nome utente... [[BR]
MySql chiederà di fornire la password relativa all'utente usato:

Le diciture «indirizzo_host» e «nome_utente» vanno sostituite, rispettivamente, con l'IP del computer sul quale risiede il server '''My``Sql''' e con il proprio nome utente per l'accesso.

Verrà chiesta la password relativa all'utente inserito, dovrebbe apparire un messaggio simile al seguente:
Linea 42: Linea 45:
Enter password: ******** Enter password:
Linea 44: Linea 47:
Seguirà un breve messaggio di benvenuto:
Una volta inserita correttamente la password, il client restituirà un output simile al seguente:
Linea 46: Linea 50:
stinko@dapper:~$ mysql -h localhost -u stinko -p
Enter password:
Linea 56: Linea 58:
Da questo momento la connessione è stabilita e sarà dunque possibile digitare comandi da inviare al server.
Linea 57: Linea 61:
Lavori in corso: portate pazienza...
Linea 59: Linea 62:
(DA COMPLETARE E RIVEDERE)

Il comando GRANT permette allo stesso tempo di creare un utente e di assegnargli dei permessi specifici: [[BR]]
Il comando GRANT permette allo stesso tempo di creare un utente e di assegnargli dei permessi specifici:
Linea 68: Linea 69:
La sintassi qui proposta è molto semplice: [[BR]]
'''''istruzioni_consentite''''' è una lista di istruzioni di SQL che si vogliono permettere all'utente (CREATE, SELECT, UPDATE, DELETE, ALTER, EXECUTE, ecc..). Se si vuole dare all'utente permessi completi si può utilizzare la parola chiave ALL. [[BR]]
'''''database''''' E' il nome del database che stiamo prendendo in considerazione. [[BR]]
'''''tabella''''' Inserendo il nome di una tabella, si fa riferimento solo ad essa. Per tutte le altre tabelle non varranno le regole che stiamo specificando. Se si vuole fare riferimento a tutte le tabella si può utilizzare il carattere asterisco (*). [[BR]]
'''''utente''''' Specifica il nome dell'utente che vogliamo creare. [[BR]]
'''''password''''' Specifica la password associata all'utente che stiamo creando. La password va scritta in chiaro. [[BR]]
Linea 75: Linea 70:
Ad esempio, consentire all'utente "tizio" di eseguire interrogazioni (SELECT), aggiornamenti (UPDATE), eliminazioni (DELETE) sul database "miodatabase", diamo il seguente comando: La sintassi proposta di seguito è molto semplice:

 * '''istruzioni_consentite''' Contiene una lista di istruzioni di SQL che si vogliono permettere all'utente ('''CREATE''', '''SELECT''', '''UPDATE''', '''DELETE''', '''ALTER''', '''EXECUTE''', ecc..). Se si desidera dare all'utente permessi completi si può utilizzare la parola chiave '''ALL'''.

 * '''database''' Il database al quale applicare le modifiche.

 * '''tabella''' Il nome della tabella alla quale applicare le modifiche. Se si desidera applicare le modifiche a tutte le tabelle del database in questione è utile usare il carattere asterisco '''*'''.

 * '''utente''' L'utente da creare. [[BR]]

 * '''password''' Assegna una password al nuovo utente.

Ad esempio, è possibile consentire all'utente «tizio» di eseguire interrogazioni '''SELECT''', aggiornamenti '''UPDATE''', eliminazioni '''DELETE''' sul database «miodatabase», digitando il seguente comando:
Linea 79: Linea 86:
Abbiamo concesso all'utente "tizio" la possibilità di agire sul data-base collegandosi da "localhost" (la macchina locale del database server). [[BR]]
Linea 81: Linea 87:
È stato concessa all'utente «tizio» la possibilità di agire sul database collegandosi dalla macchina locale dove risiede il server.
Linea 82: Linea 89:
Vediamo infine l'istruzione REVOKE che svolge la funzione opposta a GRANT, e cioè rimuovere permessi. Ne vediamo solo la sintassi in quanto molto simile all'istruzione GRANT: L'istruzione '''REVOKE''' svolge la funzione opposta a '''GRANT''', serve, cioè, a revocare i permessi. La sintassi è molto simile a quella dell'istruzione '''GRANT''':
Linea 86: Linea 93:
per la quale valgono le stesse regole sopra viste per la GRANT. [[BR]]
Linea 88: Linea 94:
= Gestione dei database = = Ulteriori risorse =
Linea 90: Linea 96:
== Vedere l'elenco dei database esistenti ==
Lavori in corso: portate pazienza...

Dopo essersi connessi a MySql, sarà possibile visualizzare l'elenco di tabelle in esso contenute:
{{{
SHOW DATABASE;
}}}
Ecco il risultato:
{{{
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| dbstinko |
| mysql |
+--------------------+
4 rows in set (0.00 sec)

mysql>
}}}
''Nota: tutte le righe di comando in MySql, finiscono con ";" (punto e virgola)''

== Selezionare un dadabase ==
Lavori in corso: portate pazienza...

Ora che sappiamo quali data-base sono presenti, possiamo selezionarne uno su cui lavorare:
{{{
USE dbstinko;
}}}
Ecco la risposta:
{{{
Database changed
mysql>
}}}
Probabilmente voi non avrete un data-base "dbstinko"...

== Creare un database ==
Lavori in corso: portate pazienza...

Per creare il data-base "prova" su cui fare i primi test:
{{{
CREATE DATABASE prova;
}}}
Ecco la risposta:
{{{
mysql> create database prova;
Query OK, 1 row affected (0.00 sec)

mysql>
}}}
Verifichiamo:
{{{
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| dbstinko |
| mysql |
| prova |
+--------------------+
4 rows in set (0.00 sec)

mysql>
}}}
Perfetto... ;-)

== Cancellare un database ==
Per cancellare il database appena creato, usate il comando:
{{{
DROP DATABASE prova;
}}}
Ecco la risposta:
{{{
mysql> drop database prova;
Query OK, 0 rows affected (0.00 sec)

mysql>
}}}
Ok, ora ricreatelo... Tornerà utile.

= Gestione delle tabelle =

== Vedere l'elenco delle tabelle del db selezionato ==
Lavori in corso: portate pazienza...

== Selezionare una tabella ==
Lavori in corso: portate pazienza...

== Creare una tabella ==
Lavori in corso: portate pazienza...

=== Tipi di campo disponibili ===
Quelli che seguono sono i tipi di campo disponibili per la creazione dei nostri database. [[BR]]
'''''TINYINT''''' Valore numerico compreso tra -128 e 127 [[BR]]
'''''TINYINT UNSIGNED''''' Valore numerico compreso tra 0 e 255 [[BR]]
'''''SMALLINT''''' Valore numerico compreso tra -32768 e 32767 [[BR]]
'''''SMALLINT UNSIGNED''''' Valore numerico compreso tra 0 e 65535 [[BR]]
'''''MEDIUM''''' Valore numerico compreso tra -8388608 e 8388607 [[BR]]
'''''MEDIUM UNSIGNED''''' Valore numerico compreso tra 0 e 16777215 [[BR]]
'''''INT o INTEGER''''' Valore numerico compreso tra -2147483648 e 2147483647 [[BR]]
'''''INT UNSIGNED''''' Valore numerico compreso tra 0 e 4294967295 [[BR]]
'''''BIGINT''''' Valore numerico compreso tra -9223372036854775808 e 9223372036854775807 [[BR]]
'''''BIGINT UNSIGNED''''' Valore numerico compreso tra 0 e 18446744073709551615 [[BR]]
'''''FLOAT (m,d)''''' Valore numerico con valori decimali. Compreso tra -3.402823466E+38 e -1.175494351E-38 [[BR]]
'''''DOUBLE(m,d) o REAL(m,d)''''' Valore numerico con valori decimali. Compreso tra -1.7976931348623157E+308 e -2.2250738585072014E-308 [[BR]]
'''''DECIMAL (m,d) o NUMERIC(m,d)''''' Valore numerico con decimali che sarà memorizzato come una serie di caratteri [[BR]]
'''''DATE''''' Campo contenente una data in formato "aaaa-mm-gg" [[BR]]
'''''DATETIME''''' Campo contenente la data e ora, informato "aaaa-mm-gg hh:mm:ss" [[BR]]
'''''TIME''''' Campo contente un’ora nel formato: "hh:mm:ss" [[BR]]
'''''CHAR''''' Campo contenente una stringa di caratteri che può avere la massina lughezza di 255 [[BR]]
'''''TINYBLOB o TINYTEXT''''' Campo che può avere la massima lunghezza di 255 in formato binario nel primo caso o testo nel secondo [[BR]]
'''''BLOB o TEXT''''' Campo che può avere la massima lunghezza di 65535 in formato binario nel primo caso o testo nel secondo [[BR]]
'''''MEDIUMBLOB o MEDIUMTEXT''''' Campo che può avere la massima lunghezza di 16777215 in formato binario nel primo caso o testo nel secondo [[BR]]
'''''LONGBLOB o LONGTEXT''''' Campo che può avere la massima lunghezza di 4294967295 in formato binario nel primo caso o testo nel secondo [[BR]]
'''''ENUM (‘value1’,’value2’,…)''''' Campo che può contenere uno dei valori presente tra le parentesi [[BR]]

= Links utili =
http://www.mysql.com/ [[BR]]
http://database.html.it/guide/leggi/87/guida-mysql/ [[BR]]
http://canone.ce.unipr.it/MySQLTutor/Home.htm [[BR]]
http://database.html.it/guide/leggi/40/guida-linguaggio-sql/ [[BR]]

CategoryServer CategoryNuoviDocumenti
 * [http://www.mysql.com/ Sito ufficiale del progetto]
 * [http://database.html.it/guide/leggi/87/guida-mysql/ Piccola guida a MySql]
 * [http://canone.ce.unipr.it/MySQLTutor/Home.htm Tutorial per MySql]
 * [http://database.html.it/guide/leggi/40/guida-linguaggio-sql/ Piccola guida al linguaggio SQL]
----
CategoryServer

BR

Introduzione

attachment:logo.gif

MySql è il più diffuso database Open Source basato sul linguaggio SQL. Questo prodotto viene fornito dall'azienda MySQL AB che eroga servizi basati sullo stesso MySql.

Un database è un insieme strutturato di dati, dalla lista della spesa, all'elenco dei titoli presenti in una grossa libreria. MySql si occupa della strutturazione e della gestione a basso livello dei dati stessi, in modo da velocizzarne l'accesso, la modifica e l'inserimento di nuovi elementi. L'acronimo RDBMS significa "Relational Data-Base Management System" e sta ad indicare che MySql offre la possibilità di conservare i dati non in un enorme store-room ma in diverse tabelle, in modo di velocizzarne l'accesso. L'acronimo SQL significa Structured Query Language ed indica il linguaggio standard per le interrogazione delle basi di dati.

La presente guida spiega l'uso delle funzioni principali di MySql. Alla fine di questo documento è possibile trovare i riferimenti alla documentazione ufficiale e ad alcune delle guide presenti in rete.

Installazione

Per installare MySql è necessario installare i pacchetti mysql-server e mysql-admin, reperibili dai [:Repository:repository] ufficial, con uno fra i vari strumenti messi a disposizione dal sistema: [:SynapticHowto:Synaptic], [:AdeptHowTo:Adept] e [:Apt:apt-get].

Gestione degli utenti

Impostare una password di amministrazione

Ad installazione ultimata, l'utente root potrà accedere senza password: sarà dunque necessario assegnargliene una quanto prima.

Per impostare la password di amministrazione è sufficiente lanciare il seguente comando:

mysqladmin –u root -p pwd

Immagine(Icone/Piccole/note.png,,center)

La dicitura «pwd» va sostituita con la password desiderata.

Connettessione al database

Digitare il seguente comando in una finestra di terminale:

mysql -h indirizzo_host -u nome_utente -p

Le diciture «indirizzo_host» e «nome_utente» vanno sostituite, rispettivamente, con l'IP del computer sul quale risiede il server MySql e con il proprio nome utente per l'accesso.

Verrà chiesta la password relativa all'utente inserito, dovrebbe apparire un messaggio simile al seguente:

Enter password:

Una volta inserita correttamente la password, il client restituirà un output simile al seguente:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 5.0.22-Debian_0ubuntu6.06-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Da questo momento la connessione è stabilita e sarà dunque possibile digitare comandi da inviare al server.

Creare un nuovo utente

Il comando GRANT permette allo stesso tempo di creare un utente e di assegnargli dei permessi specifici:

GRANT <istruzioni_consentite>
ON <database>.<tabella>
TO <utente>
IDENTIFIED BY <password>;

La sintassi proposta di seguito è molto semplice:

  • istruzioni_consentite Contiene una lista di istruzioni di SQL che si vogliono permettere all'utente (CREATE, SELECT, UPDATE, DELETE, ALTER, EXECUTE, ecc..). Se si desidera dare all'utente permessi completi si può utilizzare la parola chiave ALL.

  • database Il database al quale applicare le modifiche.

  • tabella Il nome della tabella alla quale applicare le modifiche. Se si desidera applicare le modifiche a tutte le tabelle del database in questione è utile usare il carattere asterisco *.

  • utente L'utente da creare. BR

  • password Assegna una password al nuovo utente.

Ad esempio, è possibile consentire all'utente «tizio» di eseguire interrogazioni SELECT, aggiornamenti UPDATE, eliminazioni DELETE sul database «miodatabase», digitando il seguente comando:

GRANT SELECT,UPDATE,DELETE ON miodatabase.* TO tizio@localhost IDENTIFIED BY 'miapasswd';

È stato concessa all'utente «tizio» la possibilità di agire sul database collegandosi dalla macchina locale dove risiede il server.

L'istruzione REVOKE svolge la funzione opposta a GRANT, serve, cioè, a revocare i permessi. La sintassi è molto simile a quella dell'istruzione GRANT:

REVOKE <istruzioni_revocate> ON <database>.<tabella> FROM <utente>;

Ulteriori risorse


CategoryServer