Archivi tag: make

Installare MySQL da sorgenti

Chiunque abbia mai avuto a che fare con Linux conoscerà sicuramente i cosiddetti packet manager (yum, aptitude, emerge, ecc.). Utilizzandoli insistentemente si rischia di non sapere più come comportarsi nel caso in cui sia necessario installare una vecchia versione di un pacchetto software, oppure una versione beta dello stesso (non presente nei repositories).

 

My.jpg

La prima scelta, solitamente, ricade sui pacchetti precompilati per una specifica architettura hardware ed un sistema operativo ben determinato. Quando questi pacchetti non sono disponibili (a.k.a. Gentoo), è necessario scaricare i file sorgenti e compilare il tutto a manetta.

Dopo questa breve introduzione, vi mostrerò come installare MySQL 5.0.91 su Gentoo. Tale procedura vale per tutte le versioni di MySQL che necessitano di compilazione manuale. Ma bando alle ciance e veniamo al dunque.

Per prima cosa creiamo la directory in cui verrà installato il pacchetto in questione:

nightfly@nightbox:~$ mkdir /usr/local/mysql

Adesso, dopo aver scaricato mediante wget la tarball contenente i sorgenti di MySQL, possiamo procedere con la loro compilazione ed installazione:

 nightfly@nightbox:~$ tar -xvf mysql-5.0.91.tar.gz
 nightfly@nightbox:~$ cd mysql-5.0.91
 nightfly@nightbox:~$ ./configure --prefix=/usr/local/mysql
 nightfly@nightbox:~$ make
 nightfly@nightbox:~$ make install

Aggiungiamo l’utente mysql che useremo per avviare il demone e modifichiamo l’owner della directory target:

 nightfly@nightbox:~$ chown mysql:mysql /usr/local/mysql
 nightfly@nightbox:~$ cd /usr/local/mysql/bin

Installiamo i DB di default:

nightfly@nightbox:~$ ./mysql_install_db

Copiamo il file di configurazione di MySQL su /etc:

nightfly@nightbox:~$ cp /usr/local/mysql/share/mysql/my-medium.cnf  /etc
 nightfly@nightbox:~$ mv /etc/my-medium.cnf /etc/my.cnf

Copiamo gli eseguibili in /usr/local/sbin:

nightfly@nightbox:~$ cp /usr/local/mysql/bin /usr/local/sbin

Verifichiamo che la copia sia andata a buon fine:

nightfly@nightbox:~$ which mysql

Copiamo il demone in /etc/init.d e rinominiamolo in mysqld:

 nightfly@nightbox:~$ cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d
 nightfly@nightbox:~$ cd /etc/init.d
 nightfly@nightbox:~$ mv mysql.server mysqld

Avviamo il demone e verifichiamo che sia attivo mediante un netstat ed un ps:

nightfly@nightbox:~$ /etc/init.d/mysqld start

nightfly@nightbox:~$ netstat -anp | grep :3306
nightfly@nightbox:~$ ps aux | grep mysqld

A questo punto possiamo definire la password per l’utente root digitando:

nightfly@nightbox:~$ mysqladmin -u root password <password>

L’ultima cosa da fare consiste nella definizione delle ACL di accesso ai DB. Un esempio di ACL è il seguente:

mysql> GRANT ALL ON *.* TO root IDENTIFIED BY 'rootpassword';

ovvero sto definendo il permesso (GRANT) di effettuare INSERT, UPDATE, DELETE e SELECT (ALL) su tutte le tabelle (*) di tutti i DB presenti (.*).

Come ultima verifica proviamo ad accedere a MySQL da locale e da remoto, lanciando il comando:

nightfly@nightbox:~$mysql -u root -prootpassword

(da locale);

nightfly@nightbox:~$mysql -h <hostname> -u root -prootpassword

(da remoto).

Se i tentativi di connessione vanno a buon fine vuol dire che il nostro DBMS è stato installato correttamente ed è pronto per l’uso.

A presto.