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?

madaura
fuente

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';

Scott
fuente
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í :)
radtek
fuente
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
Beto
fuente
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

Ankireddy Polu
fuente
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
imbond
fuente
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';

Desoxyseia
fuente
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.

Nitish Pareek
fuente
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
Homam Bahrani
fuente
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
Prem Timsina
fuente
Muchas gracias. Estuve luchando con esto por un tiempo. ¿Es esto algo nuevo en las últimas versiones de mysql?
jpbourbon 01 de
5

Los métodos mencionados en las respuestas existentes no funcionan para mysql 5.7.6 o posterior. Según la documentación de mysql, esta es la forma recomendada.

B.5.3.2.3 Restablecimiento de la contraseña de root: instrucciones genéricas

MySQL 5.7.6 y posterior:

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

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

Imtiaz Shakil Siddique
fuente
3

Si no puede recordar su contraseña, la respuesta de @ radtek funcionó para mí, excepto que en mi caso había configurado MySQL usando brew, lo que significaba que los pasos 1 y 2 de su respuesta tenían que cambiarse a:

  1. /usr/local/bin/mysql.server stop

  2. /usr/local/bin/mysqld_safe --skip-grant-tables

Nota: la falta de sudo.

Schminnie
fuente
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)

oxido
fuente
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.

Shreyas
fuente
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'
sgs
fuente
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';

fuente
2

Prueba esto en la terminal: /usr/local/bin/mysql_secure_installation

Jean-Luc Barat
fuente
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';
Saurabh Verma
fuente
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.
Alexander Yushko
fuente
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

djb
fuente
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

Espoir Murhabazi
fuente
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

Siddhartha Thota
fuente
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
Thiago Farias
fuente
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.

lafeber
fuente