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


235

Acabo de instalar MySQL en Mac OS X. El siguiente paso fue configurar la contraseña de usuario root, así que hice lo siguiente:

  1. Inicie la aplicación de terminal para acceder a la línea de comandos de Unix.
  2. Bajo el indicador 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 ingresar a la mysqllínea de comando sin ninguna contraseña!

¿Por qué es esto?

Respuestas:


320

Pruebe el comando FLUSH PRIVILEGEScuando inicie sesión en el terminal MySQL. Si eso no funciona, pruebe el siguiente conjunto de comandos mientras está en el terminal MySQL

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

Cambie NEWPASSWORD con la contraseña que desee. ¡Debería estar todo listo!

Actualización : a partir de MySQL 5.7, el passwordcampo ha cambiado de nombre authentication_string. Al cambiar la contraseña, use 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 8.0.15 (tal vez ya antes de esa versión) la función CONTRASEÑA () no funciona, como se menciona en los comentarios a continuación. Tienes que usar:

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


24
En MySQL 5.7 en adelante, el nombre de la columna ha cambiado. Necesitará usar UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';en su lugar.
Carlos P

Gracias por el aviso. Editaré mi respuesta para reflejar en consecuencia.
Scott

8
También parece que la función CONTRASEÑA () está en desuso y debe colocarla 'password'en el lado derecho de la igualdad
kvn

66
Sin embargo, si no puede iniciar sesión, ¿cómo ayuda esto?
Jake N

11
después de seguir estos pasos. Cuando intenté volver a iniciar sesión con mi nueva contraseña, recibíERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Þaw

197

Si no recuerda la contraseña que configuró para root y necesita restablecerla, siga estos pasos:

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

sudo mysqld_safe --skip-grant-tables;

  1. En una nueva ventana, conéctese a la base de datos, configure una nueva contraseña y elimine los permisos y salga:

mysql -u root

Para MySQL anterior a MySQL 5.7, use:

UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';

Para MySQL 5.7+ use:

USE mysql;

UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';

Actualizar y salir:

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. Funcionó como un encanto para mí :)

44
Eso fue perfecto gracias! En Mac OSx Mavericks (2014) use sudo / Library / StartupItems / MySQLCOM / MySQLCOM stop | start | restart
Chris Adams

2
passwordNecesito estar authentication_stringahora.
zx1986

Después de MySQL 5.7, debería ser UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';, como dijo @Scott.
zx1986

Gracias agregará eso
radtek

1
En MacOSX cuando MySQL se instala con la 'opción "Preferencias' Panel (Menú Apple -> Preferencias del sistema ...), he encontrado que tuve por primera vez a MySQL dejar de usar el panel de preferencias para completar el paso 1 de la anterior utilizando. sudo killNo lo hizo trabajo como el Mac OS X podría relanzar automáticamente una nueva msql instante vez que dejé de MySQL usando el panel de preferencias, podría ejecutar manualmente.mysqld_safe --skip-grant-tables
toddcscar

85

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

Entonces, dicho esto, debe establecer una contraseña de root.

Usando la terminal ingrese lo siguiente:

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

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

Si ha cometido un error o necesita cambiar la contraseña de root, use lo siguiente:

Cambiar 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

55
Para aquellos que tienen MySQL 5.7, deben usar en update user set authentication_string=PASSWORD("NEW_PASSWORD_HERE") where User='root';lugar de usarset password=...
pdm el

66

Las instrucciones proporcionadas en el sitio web mysql son tan claras que las mencionadas anteriormente

  1. $ sudo /usr/local/mysql/support-files/mysql.server stop
  2. $ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
  3. /usr/local/mysql/bin/mysql
  4. mysql> PRIVILEGIOS DE LAVADO;
  5. mysql> ALTERAR USUARIO 'root' @ 'localhost' IDENTIFICADO POR 'MyNewPass';
  6. mysql> exito Ctrl + z
  7. $ sudo /usr/local/mysql/support-files/mysql.server stop
  8. $ sudo /usr/local/mysql/support-files/mysql.server start
  9. /usr/local/mysql/support-files/mysql -u root -p
  10. Ingrese la nueva contraseña, es decir, MyNewPass

Referencia: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


2
en mac os 10.12.6, da error después del segundo comando ERROR! El servidor se cerró sin actualizar el archivo PID (/usr/local/mysql/data/myhostname.pid).
diEcho

Gracias por indicar dónde encontrar la documentación. Es un poco confuso en Mac cuando también puede usar sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist y sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss .mysql.mysqld.plist para detener e iniciar mysql. Usar sudo /usr/local/mysql/support-files/mysql.server stop parece un mejor enfoque.
Daniel

59
  1. Detenga el servidor mysqld.

    • Mac OS X: System Preferences > MySQL>Stop MySQL Server
    • Linux (desde la terminal): sudo systemctl stop mysqld.service
  2. Inicie el servidor en modo seguro con omisión de privilegios

    • Desde la terminal: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. En una nueva ventana de terminal:

    • sudo /usr/local/mysql/bin/mysql -u root
  4. Esto abrirá la línea de comando mysql. Desde aquí ingrese:

    • UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';

    • FLUSH PRIVILEGES;

    • quit

  5. Detenga el servidor mysqld nuevamente y reinícielo en modo normal.

    • Mac OSX (desde la terminal): sudo /usr/local/mysql/support-files/mysql.server restart
    • Terminal de Linux: sudo systemctl restart mysqld

1
Para ejecutar 5.7.23 en High Sierra, esto funciona perfectamente. Gracias.
Daniel

En MySQL 8.0.11, se eliminó la función establecida en el cuarto paso. Marque aquí, este está trabajado. stackoverflow.com/a/52579886/621951
Günay Gültekin

22

Para el nuevo Mysql 5.7 por alguna razón, los comandos bin de Mysql no están conectados al shell:

  1. Reinicia la Mac después de la instalación.

  2. Inicie Mysql:

    Preferencias del sistema> Mysql> botón Inicio

  3. Vaya a la carpeta de instalación de Mysql en la terminal:

    $ cd /usr/local/mysql/bin/

  4. Acceso a Mysql:

    $ ./mysql -u root -p

e ingrese la contraseña inicial dada a la instalación.

  1. En la terminal de Mysql, cambie la contraseña:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';


16

En la terminal, escribe mysql -u root -py presiona Retorno. Ingrese la contraseña actual de mysql que debe haber anotado. Y establece la contraseña SET PASSWORD = PASSWORD('new_password');

Consulte esta documentación aquí para obtener más detalles.


10

Si olvidó la contraseña raíz de MySQL, no puede recordar o no quiere entrar ... puede restablecer la contraseña de la base de datos mysql desde la línea de comandos en Linux u OS X siempre que conozca la contraseña de usuario raíz de la caja usted está en:

(1) Detener MySQL

sudo /usr/local/mysql/support-files/mysql.server stop

(2) Comience en modo seguro:

sudo mysqld_safe --skip-grant-tables

(3) Este será un comando continuo hasta que finalice el proceso, por lo tanto, abra otra ventana de shell / terminal , inicie sesión sin una contraseña:

mysql -u root

UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

En el comando ACTUALIZAR anterior simplemente reemplace la 'contraseña' con su propia contraseña nueva, asegúrese de mantener las comillas

(4) Ahorro y bastante

FLUSH PRIVILEGES;

\q

(5) Inicie MySQL

sudo /usr/local/mysql/support-files/mysql.server start

5

Cuando instalé OS X Yosemite, tuve un problema con Mysql. Probé muchos métodos pero ninguno funcionó. En realidad encontré una manera bastante fácil. Probar esto.

  1. Primero inicie sesión en la terminal desde sus privilegios.

sudo su

  1. deja de mysql

sudo /usr/local/mysql/support-files/mysql.server stop

  1. comenzar en modo seguro:

sudo mysqld_safe --skip-grant-tables

  1. abra otra terminal, inicie sesión como privilegios su, luego inicie sesión en mysql sin contraseña

mysql -u root

  1. cambiar la contraseña

UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';

  1. privilegios de descarga

FLUSH PRIVILEGES;

  1. Ya terminaste

Muchas gracias. Estuve luchando con esto por un tiempo. ¿Es esto algo nuevo en las últimas versiones de mysql?
jpbourbon 01 de



3

Creo que esto debería funcionar :

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD'

(Tenga en cuenta que probablemente debería reemplazar root con su nombre de usuario si no es root)


2

Detener el servidor MySQL

sudo /usr/local/mysql/support-files/mysql.server stop

Iniciar MySQL en modo seguro

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

Cambiar la contraseña de root

/usr/local/mysql/bin/mysql -u root

use mysql;
UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
exit

Pruebas

correr /usr/local/mysql/bin/mysql -u root

Ahora ingrese la nueva contraseña para comenzar a usar MySQL.


2

Esto es exactamente lo que funcionó para mí:

  1. Asegúrese de que no se esté ejecutando ningún otro proceso MySQL. Para verificar esto, haga lo siguiente:

     a.From the terminal, run this command:
           lsof -i:3306 
       If any PID is returned, kill it using kill -9 PID
     b. Go To System Preferences > MySQL > check if any MySQL instances 
        are running, stop them.
  2. Inicie MySQL con el comando:

    sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. La contraseña para cada usuario se almacena en la tabla mysql.user en las columnas Usuario y autenticación_cadena respectivamente. Podemos actualizar la tabla como:

    UPDATE mysql.user SET authentication_string='your_password' where User='root'

2

macOS 10.14+ con 5.7.26 instalado desde el instalador DMG de Mac OSX.

Al intentar utilizar el comando ACTUALIZAR publicado por otros usuarios, se produce el siguiente error:

ERROR 1820 (HY000): debe restablecer su contraseña utilizando la declaración ALTER USER antes de ejecutar esta declaración.

Copie la contraseña que le presentó el terminal abierto del instalador y haga lo siguiente:

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORDHERE';


2

Para hacer referencia a MySQL 8.0.15 +, la función de contraseña () no está disponible. Usa el siguiente comando.

Uso amablemente

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

1

Si olvidó su contraseña o desea cambiarla a su mysql:

  1. inicie su terminal e ingrese:
sudo su
  1. Ingrese el pase para su sistema
  2. Detén tu mysql:
sudo /usr/local/mysql/support-files/mysql.server stop
  1. Deje esta ventana ABIERTA, ejecute la segunda ventana de terminal e ingrese aquí:
mysql -u root
  1. Y cambie su contraseña para mysql:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';

donde "nueva_contraseña": su nuevo pase. No necesita un pase viejo para mysql.

  1. Enjuague, salga y verifique su nuevo pase:
FLUSH PRIVILEGES;
  1. Cierre todas las ventanas y verifique su nuevo pase para mysql. Buena suerte.

1

Mucho ha cambiado para MySQL 8. He encontrado que la siguiente modificación de la documentación de MySQL 8.0 "Cómo restablecer la contraseña de root" funciona con Mac OS X.

Cree un archivo temporal $HOME/mysql.root.txtcon el SQL para actualizar la contraseña de root:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';

Esto se usa mysql_native_passwordpara evitar que el complemento de autenticación 'caching_sha2_password' no se pueda cargar error, que obtengo si omito la opción.

Detenga el servidor, comience con una --init-fileopción para establecer la contraseña de root, luego reinicie el servidor:

mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start


1

¡Agreguemos esta solución alternativa que funciona en mi computadora portátil!

Mac con Osx Mojave 10.14.5

Mysql 8.0.17 se instaló con homebrew

  • Ejecuto el siguiente comando para localizar la ruta de mysql

    brew info mysql

  • Una vez que se conoce el camino, ejecuto esto:

    /usr/local/Cellar/mysql/8.0.17/bin/mysqld_safe --skip-grant-table

  • En otra terminal ejecuto:

    mysql -u root

  • Dentro de esa terminal, cambié la contraseña de root usando:

    update mysql.user set authentication_string='NewPassword' where user='root';

  • y para terminar corro:

    FLUSH PRIVILEGES;

Y voila se restableció la contraseña.

Referencias


1

Puede desactivar mysql manualmente en Mac, haciendo clic en  Menú Apple y abra Preferencias del sistema. Elija el panel de preferencias "MySQL", luego haga clic en el botón "Detener el servidor MySQL" para detener el servidor MySQL en Mac.

Después de detener su mysql, deberá seguir estos pasos.

  • Tendrá que iniciar mysql en modo skip-grant-tables

$ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables

  • En su terminal, ingrese este comando para ENJUAGAR PRIVILEGIOS existentes

/ usr / local / mysql / bin / mysql mysql> FLUSH PRIVILEGES;

  • Ahora necesita modificar la contraseña del usuario

mysql> ALTERAR USUARIO 'root' @ 'localhost' IDENTIFICADO POR 'newpassword';

mysql> salir

Luego puede ir al menú  Apple y abrir Preferencias del sistema. Elija el panel de preferencias "MySQL", luego haga clic en el botón "Detener el servidor MySQL" para detener el servidor MySQL en Mac.

Finalmente, puede volver al menú Apple y abrir Preferencias del sistema. Elija el panel de preferencias "MySQL", luego haga clic en el botón "Iniciar MySQL Server" para iniciar MySQL Server en Mac.

Espero que ayude


1

Ninguno de los comentarios anteriores resuelve el problema en mi Mac. Usé los comandos a continuación y funcionó.

$ brew services stop mysql
$ pkill mysqld
$ rm -rf /usr/local/var/mysql/ # NOTE: this will delete your existing database!!!
$ brew postinstall mysql
$ brew services restart mysql
$ mysql -u root

0
mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET authentication_string='yourpasswd' WHERE User='root';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';

De alguna manera necesito hacer esto cada vez que mi Macbook se reinicia. Al publicar esto como referencia personal, espero que también ayude a alguien más.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.