Este es un pequeño tutorial sobre cómo cambiar la password de root en MySQL en caso de que la hayamos olvidado o necesitemos cambiarla por motivos de seguridad.
Vamos a ver el ejemplo lanzando los comandos necesarios desde la propia consola de MySQL.
Pincha en la imagen para saber más sobre este libro
También te puede interesar:
Guía rápida de administración de MySQL
Generar diagrama entidad relación de una base de datos MySQL Workbench
Instalar PHP en Centos
Comprimir y descomprimir .gz, .tar.gz, y .zip en linux por comandos
Tabla de contenidos
- 1 Pasos para cambiar la password de root
- 2 Comando para hacer login en MySQL
- 3 Comando para seleccionar la bbdd de MySQL
- 4 Comando para resetear la contraseña de root de MySQL
- 5 Comando para refrescar los permisos de MySQL
- 6 Comando para salir de MySQL
- 7 Ejemplo de cómo resetear la contraseña de Root de MySQL
Pasos para cambiar la password de root
- Hacer login en MySQL
- Seleccionar la base de datos mysql
- Ejecutar sentencia de actualización de contraseña
- Refrescar permisos
- Salir de MySQL
Comando para hacer login en MySQL
Primero entramos en la consola de MySQL escribiendo en la consola de nuestro sistema la palabra "mysql" seguida del usuario root:
$ mysql -u root -p
Solo podremos acceder a la consola de MySQL de esta manera si tenemos habilitado el poder conectarnos en local sin tener que poner la contraseña.
Después nos aparecerá el prompt de MySQL y es desde ahí donde ejecutaremos los siguientes comandos.
Comando para seleccionar la bbdd de MySQL
mysql> use mysql;
Comando para resetear la contraseña de root de MySQL
mysql> update user set password=PASSWORD("root") where User='root';
La contraseña que estamos estableciendo para el usuario root será "root".
Comando para refrescar los permisos de MySQL
mysql> flush privileges;
Comando para salir de MySQL
mysql> quit.
Ejemplo de cómo resetear la contraseña de Root de MySQL
De todos los comandos anteriores, si os habéis fijado, es en el segundo comando donde pondremos la nueva contraseña del usuario ROOT.
La ejecución de estos pasos podéis verlos sobre un entorno en el que podido realizar el cambio:
Espero que os haya sido de utilidad. Este artículo, así como el de Administración de BBDD MySQL y Creación de BBDD desde Consola complementa un poco más mis tutoriales sobre MySQL.
[Carmelo56@localhost ~]$ mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
-------------------------------------------------------------------------------------------------------Gracias por el aporte, aun no resuelvo, el inconveniente, de no poder entrar a "phpMyAdmin", ya que pide contraseña, aparece por default con el usuario "admin"---pero ¿ y la contraseña?....no he logrado cambiarla.
Hola Juan. La contraseña de acceso a phpMyAdmin no tiene nada que ver con la contraseña de MySQL. Para cambiar o saber la contraseña de phpMyAdmin tienes que editar el fichero C:\xampp\phpMyAdmin\config.inc.php. Un saludo.
al usar esa sentencia me da error ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("nuevacontraseña") WHERE user="root"' at line 1
mysql version 8.0.13 en centos 7 alguna ayuda
Creo que has puesto una comilla simple de más. O el editor de WordPress me la ha colocado sin darme cuenta. Revisa las comillas. Un saludo.
mysql> update user set password=PASSWORD(“paste”) where User=’root’;
ERROR 1054 (42S22): Unknown column '’root’' in 'where clause'
mysql>
Hola Miguel. Revisa las comillas. Hay que usar comillas simples. Muchas veces el WordPress me las modifica cuando pego código. Si las cambias debería funcionarte. Disculpa. Un saludo.
yo habia visto cerca de 1000 video tutoriales, casi la computadora me habla, saca pies, se monta en un transbordador y va a la luna, y con tus 5 lineas fue que pude resolver jajaja, gracias genio!
Me alegro ;). Saludos!
Hola. me sale este error.
mysql> UPDATE user SET password=PASSWORD('root') WHERE User='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
Hola Edgar. Has hecho antes un "use mysql"?. Si es así, ¿qué versión de MySQL estás usando? Un saludo.
Encontré el problema.
Al parecer a partir de la versión 5.5 la columna password cambia por authentication_string.
Muchas gracias por la info.
Y también veo que la función password() la ha deprecado a partir de la versión 5.7.7. Revisaré las novedades para actualizar el post. Muchas gracias Edgar.
a la hora de poner la contraseña
me sale ERROR 1045 (28000):Acces denied for user 'zabbix '@'locahost' (using password:YES)
Hola Terry. Revisa este tutorial https://www.javierrguez.com/crear-bbdd-mysql-desde-comandos-en-linux/. Te faltan permisos para poder logarte con contraseña. Un saludo.
Hola, gracias por el tutorial. Me sucede algo muy extraño. Pude cambiar el pass, de hecho consulto la tabla user, y aparece. Pero cuando salgo e intento entrar sin contraseña, entro sin problemas! Qué estaré haciendo mal? Gracias.
Sí, eso es porque en localhost no te hace falta. De memoria no te sé decir, pero si no recuerdo mal creo que es configurable y puedes obligar a que pida la contraseña siempre. Un saludo.
No database selected ??????? que base de datos debo seleccionar?
Lo tienes ahí en los comandos "use mysql". Un saludo.
Hola Javier, Me aparece un error al intentar hacer la modificacion de contraseña. Me podrias ayudar por favor? te copio lo que hice y lo que me apareció:
mysql> mysql> update user set password=PASSWORD("root") where User='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
Tengo la version 8.20 de MySQL.
Muchas gracias
Hola Daniel. ¿Has ejecutado el comando anterior: use mysql;? Con esa versión de MySQL no sé si lo he llegado a probar. Tendría que mirarlo. Un saludo.
Hola Javier! gracias por tu aporte. con tu tutorial pude cambiar mi contraseña, pero ahora quiero que no tenga contraseña! y no se como es la sentencia para poner una contrasela null. lo busque, y nada. me podras ayudar? muchas gracias.
A nulo no sé si se puede poner. Pero puedes configurar que si estás en localhost no tengas que meter la contraseña. Siempre lo he hecho al revés, quiero decir, que siempre he activado la contraseña en localhost. Eso se hace con un grant root@localhost. Para eliminarlo, supongo que será quitando el grant, pero no lo he probado nunca. Un saludo.
hola gracias por el post yo tuve suerte y fue el primero q abri, el problema fue con el campo password que como ya decia el autor en un comentario en nuevas versiones de mysql daba bateo, menos mal q lei los comentarios (cosa q solo hago si da error) bueno la cuestion es que deberia quedar asi
update user set authentication_string='root' where User='root';
un detalle todo lo tuve q hacer como #root pq desde $myUser normal no m dejaba hacerlo
disculpen los signos mi teclado esta en ingles
solo me funciona desde #
hola buen día estoy instalando MySQL pero me pide Current Root Password y me dijieron que le diera pass pero no acepta y no se que ponerle
Si lanzas el update no necesitas conocer la contraseña actual. Si te fijas, si te conectas como root en la máquina creo que no pide la contraseña.
Buenas tardes
Veras no puedo acceder a la consola al parecer porque mi clave tiene un "@" y necesito cambiarla.
Puede que tengas que escapar ese carácter. Habría que mirar si el carácter de es escape es la \ u otro. Antes de la @ pon la \ y prueba de nuevo. Sino habría que investigar en la documentación de MySQL cuál sería el carácter de escape para que reconozca la @ como parte de la contraseña. También, la contraseña se suele poner entre comillas simples. ¿Eso lo has hecho? Un saludo.
Hice el cambio con update user set authentication_string='root' where User='root'; y luego cuando quiero volver a entra me dice que la contraseña es erronea, y tampoco me deja entrar con la antigua conteaseña a mysql