Realizzazione by siti web firenze e web.at.work

contatti
realizzazione siti web

MYSQL installazione mysql

Le maggiori distribuzioni di Linux comprendono, fra i pacchetti software disponibili, il server, il c1ient, le librerie condivise e alcuni moduli per l'interfacciamento di MySQL con il server Web Apache e i motori per realizzare pagine Web dinamiche con PERL e PHP Nella maggior parte dei casi il software necessario è già installato nella Linux box oppure è disponibile nei CD o nel DVD dell'installazione. Qui vedremo come installare MySQL partendo dal presupposto che non sia già installato nella vostra Linux box. Segnaliamo il sito ufficiale di MySQL (www.mysql.com) per scaricare il pacchetto relativo alla propria architettura (ad esempio x86). Ii passi da compiere sono i seguenti:

aggiungere al sistema l'utente mysql:

[root@mysqlserver -]# useradd mysql
[root@mysqlserver -]# passwd mysql
Changing password for user mysql.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

decomprimere il pacchetto scaricato (ad esempio nella directory /root) nella directory /usr/local:

[root@mysqlserver -]# cd /usr/local
[root@mysqlserver local]# tar xzf /root/mysql-5.0.45-linux-i686-icc-glibc23.tar.gz

creare un collegamento simbolico alla directory appena creata e chiamarlo mysql

[root@mysqlserver local]# ln -s mysql-S.0.4S-linux-i686-icc-glibc23 mysql

assegnare come utente e gruppo alla directory usr /local/mysql l'utente root e il gruppo mysql:

[root@mysqlserver local]# chown -R root:mysql mysql-5.0.45-linux-i686-icc-glibc23 mysql

Una volta installato il software necessario occorre configurare il server. Il file di configurazione di MySQL si chiama /etc/my.cnf e va creato o editato tenendo conto di alcuni parametri. Nella directory /usr/local/mysql/support-tiles sono disponibili alcuni esempi di file di configurazione, riconoscibili dall'estensionE .ent, che possono essere modificati secondo le proprie esigeme e copiati o linkati in /etc/my.cnf. L'esempio di my.cnf, che troverete online all'indirizzo www.sprea.it/download/linuxpro/mysql/my_cnf.zip, illustra i parametri necessari per una corretta configurazione di un server su una Linux box con 1 G8 di RAM sulla quale MySQL sarà l'applicazione principale; in breve un server dedicato a MySQL. Si fa presente che tutte le directory indicate in questo file non esistono e che pertanto dovranno essere create con permessi tali per cui l'utente di sistema operativo mysql possa scrivere in esse e, per motivi di sicurezza, ne sia vietato l'accesso a tutti gli altri utenti. La maggior parte delle opzioni specificate in questo file so- no state spiegate nel capitolo precedente, quindi dovrebbero essere comprensibili. Una volta impostato il file di configurazione occorre creare le directory di lavoro e impostare in esse i permessi necessari:

[root@mysqlserver -]# mkdir -p /home/mysql/data
[root@mysqlserver -]# mkdir -p /home/mysql/ibdata
[root@mysqlserver -]# mkdir -p /home/mysql/log/system
[root@mysqlserver -]# mkdir -p /home/mysql/log/binary
[root@mysqlserver -]# mkdir -p /home/mysql/log/innodb
[root@mysqlserver -]# mkdir -p /home/mysq I/log/innodb_arch
[root@mysqlserver -]# mkdir -p /var/run/mysqld [root@mysqlserver -]# chown -R mysql:mysql /home/mysql
[root@mysqlserver -]# chmod -R 700 /home/mysql
[root@mysqlserver -]# chown mysql:root /var/run/mysqld
[root@mysqlserver -]# chmod 750 /var/run/mysqld

Occorre poi eseguire come utente mysql lo script /usr/local/mysql/scripts/mysql_install_db:

[root@mysqlserver -]# su - mysql
[mysql@mysqlserver ~]$ cd /usr/loeal/mysql
[mysql@mysqlserver mysql]$ ./scripts/mysql_install_db
Questo script crea il database mysql dentro la directory specificata come datadir e, da questo momento, è possibile avviare il server e connettersi ad esso. Occorre inoltre creare un collegamento simbolico affinché si possa avviare facilmente e automaticamente il server:
[root@mysqlserver -]# cd /ete/init.d
[root@mysqlserver iniLd]# ln -s /usr /loeal/mysql/support-files/mysql.server mysql
[root@mysqlserver iniLd]# cd
[root@mysqlserver -]# chkconfig --add mysql
[root@mysqlserver -]# chkconfig mysql on
[root@mysqlserver -]# service
mysql start

L'ultimo comando può richiedere parecchio tempo per l'esecuzione, poiché al primo avvio MySQL crea tutti i file necessari. Siccome alcuni file sono particolarmente grandi, in particolare quelli specificati come tablespace per il sistema di gestione dati InnoOB (se avete seguito le specifiche dell'esempio verrà creato un file da 1 GB e uno da 100 MB), l'operazione può richiedere molto tempo. Una volta eseguito il comando ci si può connettere, come utente root senza password, digitando il comando:

[root@mysqlserver -]# /usr /local/mysql/bin/mysql

Se si vuole evitare di riscrivere ogni volta il percorso completo, si può editare il file /etc/profile (Red Hat/Fedora) e modificarlo come descritto di seguito:

# Path manipulation
if [ 'id -u' = 0 ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi

pathmunge /usr/X11R6/bin after
pathmunge /usr/loeal/mysql/bin before

# No care liles by delault

Negli esempi successivi eviteremo di scrivere il percorso completo dei comandi, assumendo che abbiate modificato il file /etc/profile .

Come impostazione predefinita, MySQL crea un account per l'utente root, senza una password, con accesso completo al data base. Per motivi di sicurezza, questo account deve essere immediatamente modificato ed è consigliabile crearne uno nuovo con privilegi di amministratore. La prima cosa da fare è, quindi, impostare una password per l'utente root; questo può essere fatto usando il programma mysqladmin, oppure dal monitor di MySQL. Di seguito sono descritti entrambi i metodi:

[root@mysqlserver -]# mysqladmin -u root password NuOvA_PaSsWOrD

oppure

[root@mysqlserver -]# mysql -u root
Your MySQL connection id is 1
Server version: 5.0.45-log MySQL Community
Server (GPL)

Type 'help;' or ,h' far help. Type 'c' to clear the buffer

Con il successivo comando SQL, viene comunicato al server che il data base con cui si intende lavorare si chiama mysql.

mysql< USE mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql< SELECT host, user FROM user;
+--------------------------------------------+-------------+
| host      | user |
+--------------------------------------------+-------------+
| mysqlserver.dominio.it | |
I mysqlserver.dominio.it | root |
| localhost | |
| localhost | root |
+--------------------------------------------+-------------+
4 rows in set (0.02 sec)

Il comando SQL appena lanciato, che da questo momento in poi chiameremo query, mostra i campi host e user dalla tabella user contenuta nel data base mysql. Come si può notare, all'utente root è permesso di connettersi dall'host chiamato localhost e dall'host chiamato con il nome canonico del server. La differenza fra i due è che la connessione tramite localhost non usa l'interfaccia di rete ma il file socket impostato nel file di configurazione /etc/my.cnf (nell'esempio tale file era /tmp/mysql.sock). Oltre all'utente root, esiste un altro utente senza nome. Questo è l'utente anonimo di MySQL, che per default può accedere soltanto al database test. Tornando alla sicurezza di MySQL, per prima cosa, si imposta una password per l'utente root:

mysql< UPDATE user SET password= PASSWORD('NuOvA_PaSsWOrD') -> WHERE user~'root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0

Con questa query viene aggiornata (UPDATE) la tabella user e viene impostato il campo password al valore restituito dalla funzione PASSWORD() che cripta la stringa di testo fornita come argomento. Successivamente, si crea un nuovo account, con privilegi di amministratore, in grado di connettersi anche da altri host:

mysql< GRANT ALL PRIVILEGES ON *.*
-> TO dbadmin IDENTIFIED BY 'DbA_pAsSwOrD'
-> WITH GRANT OPTION;

Questa query, concede tutti i privilegi su tutti i data base e tutte le tabelle (il primo asterisco indica il nome del database e il secondo il nome della tabella) all'utente dbadmin al quale viene assegnata la password DbA_pAs5wOrD. Inoltre, allo stesso utente viene concesso il privilegio di assegnare a sua volta privilegi ad altri utenti (WITH GRANT OPTION). Volendo, si può assegnare allo stesso utente la possibilità di connettersi anche da localhost:

mysql< GRANT ALL PRIVILEGES ON *.*
-> TO 'dbadmin'@'localhost' IDENTIFIED BY 'DbA_pAsSwOrD'
-> WITH GRANT OPTlON;

A questo punto si fa in modo che MySQL ricarichi la tabella dei privilegi:

mysql< FLUSH PRIVILEGES;
Query OK, o rows affected (0.00 sec)

Quindi, ci si può disconnettere dal server e per riconnettersi si dovranno usare uno dei due account disponibili:

mysql< QUIT
Bye
[root@mysqlserver -]# mysql -p
Enter password:

oppure

[root@mysqlserver -]# mysql -u dbadmin -p
Enter password:

In entrambi i casi, se non si fornisce la password, o la si fornisce errata, non sarà possibile accedere al server.

 

separatore

Informazioni sull'autore

Sergio Ferraiolo

foto
Descrizione:

Web Master di webdesignfirenze.com, titolare di Siti web gallery che ha realizzato il sito.

Mansioni: Programmatore, web designer e Analista

Web design per la creazione siti web firenze insieme a tecniche di SEO Marketing per creare un sito di successo

Portfolio: gallery immobiliare per la vendita e l'acquisto di immobili di prestigio

Portfolio: impresa di pulizie per servizi di pulizia industriale