Establecer la contraseña del usuario root de MySQL en OS X

Acabo de instalar MySQL en Mac OS X. El siguiente paso era establecer la contraseña del usuario root, así que lo hice a continuación:

  1. Inicie la aplicación de terminal para acceder a la línea de comandos de Unix.

  2. Bajo el prompt de Unix ejecuté estos comandos:

     $ cd /usr/local/mysql/bin
     $ ./mysqladmin -u root password 'password'

Pero, cuando ejecuto el comando

$ ./mysql -u root, esta es la respuesta:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

¡Puedo entrar en la línea de comandos mysql sin ninguna contraseña!

¿Por qué es esto?

Pruebe el comando FLUSH PRIVILEGES cuando entre en la terminal de MySQL. Si eso no funciona, pruebe el siguiente conjunto de comandos mientras está en la terminal de MySQL

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

Cambia NEWPASSWORD por la contraseña que quieras. Debería estar todo listo.

Actualización: A partir de MySQL 5.7, el campo password ha sido renombrado como authentication_string. Cuando cambie la contraseña, utilice la siguiente consulta para cambiar la contraseña. Todos los demás comandos siguen siendo los mismos:

mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';

Actualización: En la versión 8.0.15 (quizás ya antes de esa versión) la función PASSWORD() no funciona, como se menciona en los comentarios de abajo. Tienes que usar:

UPDATE mysql.user SET authentication_string='password' WHERE User='root';.

Comentarios (8)

Si no recuerdas la contraseña que estableciste para el root y necesitas restablecerla, sigue estos pasos:

  1. Detenga el servidor mysqld, esto varía según la instalación
    1. Ejecute el servidor en modo seguro con la derivación de privilegios

sudo mysqld_safe --skip-grant-tables;

  1. En una nueva ventana conéctese a la base de datos, establezca una nueva contraseña y vacíe los permisos & salga:

mysql -u root

Para MySQL anterior a MySQL 5.7 utilice:

UPDATE mysql.user SET Password=PASSWORD('su-contraseña') WHERE User='root';.

Para MySQL 5.7+ utilice:

USE mysql;

UPDATE mysql.user SET authentication_string=PASSWORD("su-contraseña") WHERE User='root';

Actualice y salga:

FLUSH PRIVILEGES;

\q

  1. Detenga el servidor en modo seguro y vuelva a iniciar su servidor normal. La nueva contraseña debería funcionar ahora. A mí me ha funcionado de maravilla :)
Comentarios (10)

Una vez que haya instalado MySQL, tendrá que establecer la contraseña de "root". Si no establece una contraseña de root, entonces, bueno, no hay contraseña de root, y no necesita una contraseña para iniciar sesión.

Así que, dicho esto, tienes que establecer una contraseña de root.

Usando el terminal ingrese lo siguiente:

Instalación: Establecer contraseña de usuario root:

/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE

Si te has equivocado, o necesitas cambiar la contraseña de root utiliza lo siguiente:

Cambiar la contraseña de root:

cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]

use mysql;
update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
flush privileges;
quit
Comentarios (1)