¿Cómo elimino completamente MySQL de una instalación de Linux?

8

Me sorprendió descubrir que uno de mis usuarios privilegiados instaló MySQL en una caja de Linux. El servidor (mysqld) se está ejecutando y no hace nada. Mis habilidades están todas en Oracle, por lo que no estoy familiarizado con cómo cerrar y eliminar la instalación de MySQL.

dacracot
fuente

Respuestas:

21

No mencionó qué distribución está utilizando, pero si la instalaron a través de yum en una distribución basada en RedHat, puede eliminarla con:

yum remove mysql-server

Si lo instalaron en su propio espacio de usuario, simplemente eliminaría los archivos binarios que ejecutan el servidor. Si está en Debian / Ubuntu, usaría las chispas de método mencionadas. También usaría alternativamente:

killall mysqld; killall mysqld_safe
Dave Drager
fuente
44
Es una buena idea acostumbrarse a usar pkill en lugar de killall. Puede terminar en una caja de Solaris algún día :)
MikeyB
44
Yo prefiero /sbin/service mysql stop. Luego puede chkconfig mysql offdeshabilitarlo para que no se reinicie. Luego, la forma segura de eliminar de distribuciones basadas en RPM (como root) rpm -qa | grep mysql, entonces rpm -e mysql-<package_name>.
churnd
pkill mysqld; pkill mysqld_safeTrabajó maravillosamente. Intentar killall mysqld; killall mysqld_safeno fue exitoso. En Fedora 18 tuve éxito con pkill, gracias MikeyB.
RyanMichael
También tuve que usar: yum remove mysql , como el comando que mysql todavía muestra la ruta instalada de mysql.
shasi kanth
6

Todo depende de cómo el usuario original instaló el paquete. Si usaron la administración de paquetes integrada del sistema operativo, debería ser tan fácil como la línea yum en la respuesta de Dave o en un sistema basado en Debian (incluido Ubuntu), puede usar:

apt-get remove mysql-server

(Como un aparte, use purgar en lugar de eliminar si también desea eliminar archivos de configuración personalizados)

Si no sabe el nombre exacto del paquete para eliminar en Ubuntu:

dpkg -l|grep mysql

Si el usuario en cuestión no usó una herramienta de administración de paquetes, entonces la única solución real es simplemente asegurarse de que el servidor no se cargue al inicio (chkconfig o update-rc.d son dos herramientas útiles para eso - verifique su hombre páginas) y elimine manualmente todos los archivos instalados.


fuente
Vaya, perdón por la respuesta redundante de ubuntu, dejándola en la sugerencia chkconfig y update-rc.d ...)
Asegúrese de eliminar las herramientas GUI / workbench también en caso de que esté instalado: sudo apt-get remove mysql-workbench
pm_labs
2

Si el usuario configuró bases de datos, es posible que también deba eliminarlas. En la instalación básica de paquetes de MySQL, los archivos de la tabla se pueden encontrar en /var/lib/mysql. Si están en otra parte, puede buscar los archivos de la tabla. Tendrán una .frmextensión y deben estar contenidos en un directorio con el nombre de la base de datos con la que están asociados.

rvf
fuente
1

Dependiendo de su distribución, debería tener la opción de cerrarlo con un script de inicio en "/etc/init.d/mysql stop". Si esto falla, puede eliminar los procesos con algo similar a "for i in ps -ef |grep mysqld |awk '{print $2}'; dokill -9 $i ; done"

Realmente dependerá de cómo lo instalaron y de cómo lo eliminó. Si está ejecutando una distribución basada en Debian: "sudo apt-get remove mysqld"

Según el comentario de Zoredache, también puede hacer: "sudo apt-get purge mysqld", que también eliminaría los archivos de configuración.

Sclarson
fuente
1
Es posible que desee 'apt-get purge' en lugar de eliminar si desea deshacerse por completo de todo. El nombre del paquete probablemente será 'mysql-server' y 'mysql-common' y no mysqld.
Zoredache el
0

Tal vez el usuario mismo no sabe que instaló mysql. Puede suceder si mysql es una dependencia de algún otro programa. Eche un vistazo al archivo de registro del administrador de paquetes, por ejemplo: para un cheque de redhat /var/log/yum.log. Probablemente encontrará más paquetes instalados al mismo tiempo. ¡Entonces puede deducir lo que el usuario quería hacer, y tal vez también quiera eliminar otros paquetes que no conocía de la instalación!

En un redhat reciente puede, por ejemplo, ejecutar "yum history list", luego, después de encontrar la fecha de instalación en /var/log/yum.log, puede deducir qué operación de yum estaba relacionada con la instalación de mysql, y puede ejemplo "yum history info operation_number" para obtener detalles de la instalación, o "yum history undo operation_number" para revertir la operación y desinstalar los paquetes relacionados.

Rosco
fuente
0

Tal vez el usuario mismo no sabe que instaló mysql. Puede suceder si mysql es una dependencia de algún otro programa. Eche un vistazo al archivo de registro del administrador de paquetes, por ejemplo: para una comprobación de redhat /var/log/yum.log. Probablemente encontrará más paquetes instalados al mismo tiempo. Luego puede deducir lo que el usuario quería hacer, ¡y tal vez también quiera eliminar algunos otros paquetes que no conocía de la instalación!

md wajaheth
fuente