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
).