Installare MySQL su RedHat e/o Fedora usando gli rpm ufficiali

Non è immediato installare gli RPM ufficiali prelevati dal sito di MySQL nelle distribuzioni RedHat e/o Fedora, a causa di possibili conflitti di dipendenze. Vediamo come avere un MySQL aggiornato anche su queste distribuzioni.

Da sempre RedHat (e in seguito Fedora) ha privilegiato, tra i database server, PostgreSQL piuttosto che MySQL, pur fornendoli entrambe. Il risultato di questa politica è che le versioni di MySQL fornite con RedHat e/o Fedora non sono mai aggiornate, anzi di solito sono decisamente obsolete.

Installare MySQL su queste usando i pacchetti RPM ufficiali presenti sul sito www.mysql.com è spesso un problema; non per i pacchetti stessi, ma perchè in quelle distribuzioni sono presenti altri pacchetti (tipicamente i linguaggi Perl, PHP, Python) che necessitano delle librerie di collegamento al server MySQL: questa libreria si chiama libmysqlclient.so, ed è compilata specificatamente per RedHat, e non è la stessa fornita dagli RPM di MySQL.

Se si vuole avere una versione MySQL aggiornata e non si vuole fare la compilazione dai binari, e si vogliono anche usare contemporaneamente i linguaggi PHP e/o Perl forniti con RedHat e/o Fedora (questi ultimi sono quasi sempre aggiornati), occorre procedere come segue:

a) Installare, assieme ai linguaggi indicati, anche il mysql fornito con RedHat e/o Fedora (solo il pacchetto mysql, non anche il mysql-server);

b) salvare in una cartella temporanea il contenuto della cartella /usr/lib/mysql (dovrebbe contenere vari files del tipo libmysqlclient.so.x.x.);

c) rimuovere il pacchetto mysql, ignorando i conflitti di dipendenza, con:
rpm -e --nodeps mysql

d) Installare gli RPM ufficiali di MySql, ovvero MySQL-server, MySQL-client, MySQL-shared (anche MySQL-devel nel caso si debbano poi ricompilare librerie d'altro genere che richiedano i sorgenti di MySQL; è il caso ad es. della liberia DBD::MySQL di Perl); vedi a proposito l'articolo su questo stesso topic;

e) Eventualmente, modificare alcuni files di configurazione in modo da puntare alla corretta posizione di MySQL; per fare un esempio, nel file /etc/php.ini è bene specificare (anche se non sempre necessario) la posizione del socket di connessione al server MySQL, con la riga
mysql.default_socket = /var/lib/mysql/mysql.sock
nella corrispondente sezione del file di configurazione.

e) Se in seguito occorre aggiornare i linguaggi PHP, Perl ecc. e nel farlo dagli rpm si evidenzia tra le dipendenze richieste la libreria libmysqlclient.so, eseguire l'aggiornamento con rpm ignorando le dipendenze (sempre col param. --nodeps).

Privacy Policy