Come rimuovo completamente MySQL da un'installazione di Linux?


8

Sono stato sorpreso di scoprire che uno dei miei utenti privilegiati ha installato MySQL su un box Linux. Il server (mysqld) è in esecuzione e non fa nulla. Le mie competenze sono tutte in Oracle, quindi non ho familiarità con come arrestare e rimuovere l'installazione di MySQL.

Risposte:


21

Non hai menzionato la distribuzione che stai utilizzando, ma se l'hanno installata tramite yum su una distribuzione basata su RedHat puoi rimuoverla con:

yum remove mysql-server

Se lo installassero nel loro spazio utente, rimuoveresti semplicemente i file binari che eseguono il server. Se è su Debian / Ubuntu useresti il ​​metodo sparks menzionato. In alternativa utilizzerei anche:

killall mysqld; killall mysqld_safe

4
È una buona idea prendere l'abitudine di usare pkill invece di killall. Un giorno potresti finire su una scatola di Solaris :)
MikeyB,

4
Io preferisco /sbin/service mysql stop. Quindi è possibile chkconfig mysql offdisabilitarlo dal riavvio. Quindi il modo di sicurezza per rimuovere dalle distro basate su RPM (come root) rpm -qa | grep mysql, quindi rpm -e mysql-<package_name>.
sfornato il

pkill mysqld; pkill mysqld_safeha funzionato meravigliosamente. Il tentativo killall mysqld; killall mysqld_safenon ha avuto successo. Su Fedora 18 ho avuto successo con pkill, grazie MikeyB.
RyanMichael,

Ho anche dovuto usare: yum remove mysql , come comando che mysql sta ancora mostrando il percorso di installazione di mysql.
Shasi Kanth,

6

Tutto dipende da come l'utente originale ha installato il pacchetto. Se hanno usato la gestione integrata dei pacchetti del sistema operativo, dovrebbe essere facile come la linea yum nella risposta di Dave o su un sistema basato su Debian (incluso Ubuntu), puoi usare:

apt-get remove mysql-server

(A parte, utilizzare purge invece di remove se si desidera rimuovere anche i file di configurazione personalizzati)

Se non conosci il nome esatto del pacchetto da rimuovere su Ubuntu:

dpkg -l|grep mysql

Se l'utente in questione non ha utilizzato uno strumento di gestione dei pacchetti, l'unica vera soluzione è semplicemente assicurarsi che il server non si carichi all'avvio (chkconfig o update-rc.d sono due strumenti utili per questo - controlla il loro uomo pagine) e rimuovere manualmente tutti i file installati.


Spiacenti, scusa per la risposta ridondante di Ubuntu - lasciarla per il suggerimento chkconfig e update-rc.d ...)

Assicurati di rimuovere gli strumenti della GUI / workbench anche nel caso in cui sia installato: sudo apt-get remove mysql-workbench
pm_labs

2

Se l'utente ha impostato un database, potrebbe essere necessario rimuovere anche quelli. Nell'installazione di MySQL del pacchetto di base, è possibile trovare i file della tabella /var/lib/mysql. Se sono altrove, puoi semplicemente cercare i file della tabella. Avranno .frmun'estensione e dovrebbero essere contenuti in una directory che prende il nome dal database a cui sono associati.


1

A seconda della tua distribuzione, dovresti avere la possibilità di chiuderlo con uno script init in "/etc/init.d/mysql stop". Se ciò non riesce, è possibile interrompere i processi con qualcosa di simile a "for i in ps -ef |grep mysqld |awk '{print $2}'; do kill -9 $i; done"

Dipenderà davvero da come lo hanno installato per come lo hai rimosso. Se si esegue una distribuzione basata su debian: "sudo apt-get remove mysqld"

Per il commento di Zoredache puoi anche fare: "sudo apt-get purge mysqld" che rimuove anche i file di configurazione.


1
Potresti voler usare 'apt-get purge' invece di rimuovere se vuoi liberarti completamente di tutto. Il nome del pacchetto sarà probabilmente "mysql-server" e "mysql-common" e non mysqld.
Zoredache,

0

Forse l'utente stesso non sa di aver installato mysql. Può succedere se mysql è una dipendenza di qualche altro programma. Dai un'occhiata al file di log del gestore pacchetti, ad es .: per un controllo redhat /var/log/yum.log. Probabilmente troverai altri pacchetti installati contemporaneamente. È quindi possibile dedurre ciò che l'utente voleva fare e forse si desidera rimuovere anche alcuni altri pacchetti che non si era a conoscenza dell'installazione!

Su un redhat recente puoi ad esempio eseguire "elenco cronologia yum", quindi dopo aver trovato la data di installazione in /var/log/yum.log, puoi dedurre quale operazione yum era correlata all'installazione mysql e puoi esempio "yum history info operation_number" per ottenere i dettagli dell'installazione oppure "yum history annulla operation_number" per ripristinare l'operazione e disinstallare i relativi pacchetti.


0

Forse l'utente stesso non sa di aver installato mysql. Può succedere se mysql è una dipendenza di qualche altro programma. Dai un'occhiata al file di log del gestore pacchetti, ad esempio: per un controllo redhat /var/log/yum.log. Probabilmente troverai altri pacchetti installati contemporaneamente. È quindi possibile dedurre ciò che l'utente voleva fare e forse si desidera rimuovere anche alcuni altri pacchetti che non si era a conoscenza dell'installazione!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.