En este mini tutorial les voy a explicar como pueden cambiar y recuperar la clave de root y otros usuarios en MySQL.
Cambiar la clave usando mysqladmin
Si no existe la clave de root para MySQL y nunca la han colocada pueden cambiarla simplemente ejecutando el comando:
mysqladmin -u root password nuevopassword
Donde cambian el nuevopassword por la clave que quieran
Si ya tienen una clave vieja y la quieren cambiar por una nueva:
mysqladmin -u root -p viejopassword nuevopassword
Si quieren cambiar la clave de cualquier usuario (en el ejemplo sería el usuario vensign):
mysqladmin -u vensign -p viejopassword nuevopassword
Cambiar el password desde la consola de mysql
Si no quieres utilizar mysqladmin puedes cambiar la clave desde la consola de mysql para esto entramos ejecutando el comando:
mysql -u root -p
Aparecerá un shell parecido a este:
mysq>
Ahora seleccionamos la base de datos de mysql:
mysql>use mysql;
Si queremos cambiar el password para el usuario vensign:
mysql>update user set password=PASSWORD("NUEVOPASSWORD") where User='vensign';
mysql>flush privileges;
El flush privileges es para reiniciar los privilegios y se haga efectivo el cambio. Si nos queremos salir de la consola de mysql:
mysql>quit
Recuperar la clave de root de mysql
Para recuperar la clave de root de mysql seguimos los siguientes pasos:
1. Detenemos el proceso de mysql:
En Debian / Ubuntu y derivados:
/etc/init.d/mysql stop
Recordar utilizar sudo para Ubuntu.
En Fedora / CentOS y derivados
service mysqld stop
2. Iniciamos el servidor mysql sin chequear las tablas de permisos:
mysqld_safe --skip-grant-tables &
Te debería salir algo como:
[1] 5988 Starting mysqld daemon with databases from /var/lib/mysql mysqld_safe[6025]: started
3. Entramos como root al servidor mysql
mysql -u root
4. Cambiamos la clave
mysql>use mysql;
mysql>update user set password=PASSWORD("NUEVOPASSWORD") where User='root';
mysql>flush privileges;
5. Detenemos de nuevo el servidor mysql:
En Debian / Ubuntu y derivados:
/etc/init.d/mysql stop
Recordar utilizar sudo para Ubuntu.
En Fedora / CentOS y derivados
service mysqld stop
6. Iniciamos de nuevo el servidor mysql
En Debian / Ubuntu y derivados:
/etc/init.d/mysql start
Recordar utilizar sudo para Ubuntu.
En Fedora / CentOS y derivados
service mysqld start
7. Probamos la nueva clave:
mysql -u root -p
Pues eso es todo de este mini tutorial espero que les sea de utilidad
Saludos
Olivers
Si quieres recibir notificaciones de cuando se publican nuevos artículos y tutoriales en Vensign por favor subscribete a nuestro boletín RSS.
Muy buen Blog , felicitaciones !!!!
Gracias por tu comentario Juan
Saludos
Olivers
Hola Olivers, muy buena la explicación, tanto esta como la del servidor LAMP. Lo he probado todo y funciona correctamente.
Sólo hay una cosa que seguramente será la más tonta.
Para parar, arrancar o resetear un servicio, al poner “service httpd restart” por ejemplo. El comando no funciona. Ni como root ni como usuario. Tengo que hacerlo mediante “servicios”, en la pestaña “administración”. Estoy con la versión 8 del fedora. Que puede ser??
Gracias.
Hola Jefer, pueden ser muchas cosas, te da algún mensaje de error cuando ejecutas el comando?. Si no te imprime ningún error en pantalla lo puedes ver en el log del sistema /var/log/message y /var/log/syslog.
Copia y pega el error que da aquí para poder ayudarte mejor
Saludos
Olivers
Olivers, en var/log está el fichero “messages” pero el “syslog” no. En “messages” no me aparece ningun error respecto a esto y en la consola solo me dice “command not found” ahora bien, yo siempre trabajo en la sesión como usuario y en la consola pongo “su” junto con el password del root para poder trabajar como superusuario; si entro en la sesión directamente como root si que me deja ejecutar el comando “service httpd restart”, es esta la razón? debo estar en la sesión del root para poder ejecutarlo?
Saludos.
Hola Jefer, si tienes que ser root para poder ejecutar este comando.
En tu comentario anterior nos habías dicho que el comando no te funcionaba ni como root ni como usuario, por eso no te sugerí que hicieras su – antes de ejecutar el comando
Me alegra que lo hayas resuelto
Saludos
Olivers
Hola Olivers, solo una consulta, la página de phpMyAdmin funciona correctamente, puedo crear, consultar etc. pero abajo de todo haga lo que haga siempre me pone el siguiente mensaje como advertencia: no se pudo cargar la extensión mcrypt,por favor revise su configuración de PHP. Existe algún problema??
Gracias.
Hola Jefer, esto pasa porque necesitas instalar esta extensión de PHP. Para esto simplemente ejecuta como root:
yum install php5-mcrypt
Y luego reinicias Apache para que se apliquen los cambios con esto debería funcionar.
Saludos
Olivers
Olivers, esta es la repuesta que me dá al hacer “yum install php5-mcrypt”
updates-newkey | 2.3 kB 00:00
fedora | 2.1 kB 00:00
updates | 2.6 kB 00:00
Setting up Install Process
Parsing package install arguments
No package php5-mcrypt available.
Nothing to do
Ya ves, no hay paquetes disponibles.
Solo quiero saber si con este mensaje tenré problemas con el funcionamiento de phpMyAdmin más adelante. De momento funciona correctamente.
Gracias y perdona.
Hola Jefer intenta ejecutando estos comandos como root:
yum install libmcrypt
yum install php-mcrypt*
yum install php-mhash*
service httpd restart
Ya con esto no te debería aparecer más el mensaje, si podrías seguir utilizando el phpmyadmin sin esta librería pero según la gente de phpmyadmin esta librería mejora el desempeño de la aplicación en velocidad.
Espero que te sirva
Saludos
Olivers
Muy bien, ha desaparecido el mensaje. Todo OK.
Muchas gracias Olvivers.
Hasta la proxima….
Buenas Olivers…. Otra vez yo, a ver si me puedes ayudar; estoy probando una conexión a MySQL con código PHP y la verdad no se que pasa pero siempre se queda la página en blanco al probarlo. El servidor apache funciona correctamente, el módulo PHP también ya que puedo probar otros programitas básicos. El servidor MySQL Tb funciona correctamente si me conecto desde la consola, puedo crear la db, las tablas, hacer consultas etc. Pero con el códogo PHP no funciona.
El script PHP que utilizo es:
Si me puedes ayudar te agradecería un montón, es que he mirado muchos tutoriales y todos me dicen lo mismo. Yo diría que es problema de configuración del PHP.ini o My.ini porque es como si no me reconociera el código.
Gracias.
Me ha faltado el código.
$link=mysql_connect(“localhost”,”usuario”,”password”);
Hola jefer, no tienes ningun error simplemente no le has mandado a imprimir nada en pantalla, si no se estuviera conectando bien te daria un error.
Puedes probar colocando algo como:
< ?php $link = mysql_connect('localhost', 'usuario', 'password'); if (!$link) { die('No se puede conectar: ' . mysql_error()); } echo 'Se conecto correctamente'; mysql_close($link); ?>Con esto te debería dar algún mensaje en la página. Mientras no mandes a imprimir nada en pantalla pues no te aparecerá nada. Luego puedes efectuar algún query a la base de datos e imprimir los resultados hay muchos tutoriales en Internet que puedes encontrar de esto:
Como por ejemplo este http://www.webtaller.com/info/curso-php.php
Voy a mudar este comentario a la parte de LAMP ya que me parece que pertenece un poco más allá.
Saludos
Olivers
Super!!!, Funciona Correctamente. Muchas Gracias
Excelente, lo felicito
@Jefer y @loco2 muchas gracias por sus comentarios
hola he provado este truco pero no me funciona por que tube la genial idea de cambiar mi clave root de mysql y no me acuerdo, no hay un programa para resetear la clave root por que hago esto y nada me pide que inserte el password
Hola ortiz, en el tutorial hay un método para recuperar la clave de root de MySQL tienes que seguirlo paso a paso te aseguro que funciona.
Estaba buscando esto, yo tenía un problema, ayer instale lampp y mysql y todo bien, pero ahora al querer entrar a mysql me sale que un error que mysql no me permite, por algun motivo se cambio la contraseña, no podia entrar ni por consola ni nada pero hice lo que esta en este blog y ahora no tengo problemas. Buena.
Buenísimo este artículo, me sirvió para recuperar el password de root de mysql-server en centos 5.5
10 puntos!
caramba! gracias, muy bueno
Muchas gracias – Me sirvio de mucho xD – Yo uso Fedora 15
Hola!
Me parece la caña este post, pero tengo problemas, cuando intento recuperar la pass.
Me meto via ssh con putty a mi servidor, accedo como root, inicio esto:
/etc/init.d/mysql stop
y me responde con este mensaje:
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql stop
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) utility, e.g. stop mysql
Luego continuo con este codigo:
mysql -u root
y me salta este error:
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: NO)
Pese a que pone ” using password: NO ” es como si la hubiera desactivado pero pese a ello no me puedo meter… alguna sugerencia?
si pudiera ponerse en contacto conmigo via email seria fantastico!
Saludos y felicidades!
pd.: uso ubuntu desktop 10.04
Pingback: MySql – Inicio « laagendadeunoob