No se puede acceder a MySQL después de generar automáticamente una contraseña temporal


He borrado e instalado OSX 10.11 El Capitan y he estado siguiendo este tutorial para poner MySQL en funcionamiento en el nuevo OS X. El primer paso fue descargar MySQL Para Mac OS X 10.9 (x86, 64 bits), DMG Archive (funciona en 10.11, lo recomendaron en el tutorial). Mientras terminaba de instalar MySQL, recibí el mensaje diciendo que :

2015-10-25T02:10:54.549219Z 1 [Note] A temporary password is generated for root@localhost: R>gFySuiu23U

If you lose this password, please consult the section How to Reset the Root Password in the MySQL reference manual.

Eso fue raro, nunca he visto ese tipo de mensaje. Después de eso, inicié MySQL a través del Panel de Preferencias y luego use el comando /usr/local/mysql/bin/mysql -v en el terminal para otro paso. Recibí un mensaje de error diciendo que:

ERROR 1045 (28000): Access denied for user 'cheetah'@'localhost' (using password: NO)

También he intentado acceder a la base de datos a través de Sequel Pro usando root como nombre de usuario y contraseña en blanco, recibí un mensaje de acceso denegado diciendo que:

Unable to connect to host 127.0.0.1 because access was denied.

Double-check your username and password and ensure that access from your current location is permitted.

MySQL said: Access denied for user 'root'@'localhost' (using password: NO)

De acuerdo, también lo intenté de nuevo usando root como nombre de usuario, pero 'R>gFySuiu23U' como contraseña (que se generó desde MySQL). Recibí un mensaje de error de conexión diciendo que:

Unable to connect to host 127.0.0.1, or the request timed out.

Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).

MySQL said: Your password has expired. To log in you must change it using a client that supports expired passwords.

¿Cómo podría resolver esto problema? Recuerdo que MySQL nunca ha generado automáticamente una contraseña temporal como esta, ¿no es así ?

Author: Cheetah Felidae, 2015-10-25

14 answers

Prueba esto:

mysql -u root -h 127.0.0.1 -p
Enter password: (enter the random password here)

Ref:https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html

Después de esto, puede restablecer su contraseña utilizando ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password';

 97
Author: Kumar Nitin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-25 17:27:52

Esto es lo que funcionó para mí en OS X Yosemite ejecutando MySQL v5.7 (instalado desde el .dmg).

cd /usr/local/mysql/bin
./mysql -u root -p --connect-expired-password

(Introduzca la contraseña temporal generada por el instalador.)

Esto te lleva a modo sandbox y mysql> prompt. Luego establezca la contraseña de root deseada con ESTABLEZCA LA CONTRASEÑA :

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mySuperSecretPassword');
 36
Author: Lesley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-12 16:05:03

Ahora que la contraseña que MySQL había generado ha caducado, el problema se reduce a conseguir que esta contraseña vuelva a funcionar (1) o generar una nueva (2). Esto se puede lograr ejecutando MySQL con la opción skip-grant-tables que haría que ignorara los derechos de acceso:

  1. Detenga su servidor MySQL.

  2. Agregue lo siguiente al final de la sección [mysqld] de my.archivo cnf y guárdelo.

    skip-grant-tables

  3. Iniciar MySQL servidor.

  4. En terminal, escriba

    mysql -u root -p

Para entrar en el símbolo del sistema MySQL.

  1. En el símbolo del sistema, escriba

    USE mysql;

Para entrar en la base de datos mysql donde mantiene a los usuarios de la base de datos.

  1. Tipo

    UPDATE user SET password_expired = 'N' WHERE User = 'root';

Para que MySQL sepa que la contraseña no ha caducado (1) o

UPDATE user SET authentication_string = PASSWORD('YourNewPassword'), password_expired = 'N' WHERE User = 'root';

Para asignar una nueva contraseña YourNewPassword a root (2).

 32
Author: Anton Nikiforov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-15 21:59:02

Haciendo estos pasos bajo OSX 10.11 El Capitan y MySQL 5.7.X, debería hacer el truco.

Teniendo en cuenta que ya tiene MySQL instalado entonces..

Abra una ventana de terminal y escriba:

  1. sudo /usr/local/mysql/support-files/mysql.parada del servidor
  2. sudo mysqld_safe {skip-grant-tables

Dado que el comando disparado en el paso 2 estará en estado on going, debe abrir otra ventana de terminal y luego escribir:

  1. mysql-u root - p
  2. ACTUALIZAR mysql.user SET password_expired= 'N', authentication_string=PASSWORD(") WHERE User = 'root';
  3. salir;
  4. sudo /usr/local/mysql/support-files/mysql.reinicio del servidor

Importante: en el paso 2 debe reemplazar su contraseña.

Espero que te despierte.

 13
Author: Marcelo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-28 17:44:45

MySQL contraseña expirada

Restablecer la contraseña resolverá el problema temporalmente, sin embargo, de MySQL 5.7.4 a 5.7.10 (creo que para fomentar una mejor seguridad) el valor predeterminado para la variable default_password_lifetime es 360 (aproximadamente un año). Para esas versiones, si no realiza cambios en esta variable (o en cuentas de usuario individuales), todas las contraseñas de usuario caducan después de 360 días.

Normalmente, a partir de un script puede obtener el mensaje: "Su contraseña ha caducado. Para iniciar sesión debe cámbielo utilizando un cliente que admita contraseñas caducadas."

Por lo tanto, para evitar la caducidad automática de la contraseña, inicie sesión como root (mysql -u root -p), luego, para los clientes que se conectan automáticamente al servidor (por ejemplo, scripts.) cambiar la configuración de caducidad de la contraseña para esos clientes:

ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;

o puede desactivar la caducidad automática de la contraseña para todos los usuarios :

SET GLOBAL default_password_lifetime = 0;

Enlaces:

MySQL: Caducidad de contraseña y Sandbox Modo
MySQL: Política de Caducidad de Contraseñas
Política de caducidad de contraseñas en MySQL Server 5.7

 5
Author: Dave Everitt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-31 15:02:25

Estoy ejecutando macOS Sierra(10.12.3) e instalé mysql-5.7.17-macos10.12-x86_64.dmg.

La respuesta de @lesley funcionó para mí con la excepción de que necesitaba agregar ./ para asegurarme de que estaba llamando al binario mysql en mi directorio de trabajo actual. Que es donde se instaló el paquete mencionado anteriormente.

Si cd a /usr/local/mysql/bin y ejecuta mysql -u root -p --connect-expired-password, podría recibir el siguiente error.

mysql: unknown option '--connect-expired-password'

Lo hice. Porque simplemente ejecutando mysql sin proporcionar una ruta, llamado una versión previamente instalada del cliente MariaDB.

Así que para asegurarse de que está ejecutando el binario correcto, puede

Proporciona la ruta absoluta

/usr/local/mysql/bin/mysql -u root -p --connect-expired-password

O la ruta relativa después de cambiar los directorios

cd /usr/local/mysql/bin
./mysql -u root -p --connect-expired-password

Ambos caminos deberían funcionar. Una vez que esté conectado con el cliente, las instrucciones son las mismas que las anteriores de @lesley.

Introduzca su contraseña temporal generada por el instalador y establezca su nueva contraseña.

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourNewPassword'); 
 4
Author: najemnyvrah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-30 06:29:29

Me enfrenté al mismo problema. Seguí la guía del proceso de instalación desde https://www.ntu.edu.sg/home/ehchua/programming/sql/MySQL_HowTo.html y descargado el archivo DMG e instalado MySQL en mi MAC OS X 10.12.2.

Finalmente ejecutó los siguientes comandos en el nuevo Terminal.

cd /usr/local/mysql/bin

./mysql -u root -p --connect-expired-password

Funcionó.

 2
Author: hygull,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-25 10:57:07

La respuesta 7 funcionó para mí: El capitan, MySQL instalado desde dmg y contraseña autogenerada, pero se aseguró de cd a /usr/local/bin/mysql antes de entrar ./mysql -root -p Obvio, pero no lo hice la primera vez.

Ahora para encontrar dónde están todas mis bases de datos y tablas y cómo vincularlas.

 1
Author: james meek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-09 02:43:19

Para Mysql 5.7 uso

Shell > > sudo grep 'temporary password' /var/log/mysqld.log

 1
Author: ji-ruh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-25 10:21:21

Este en particular hizo el truco para mí:

Como se especifica en este enlace: https://www.variphy.com/kb/mac-os-x-reset-mysql-root-password

Haga todos los pasos excepto ejecutar

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

Ejecutar

    UPDATE mysql.user
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';

Y luego ejecutar PRIVILEGIOS DE DESCARGA;

 1
Author: Sudarsana Gudipati,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-28 23:53:29

La otra forma de resolver este problema es usar una versión anterior de MySQL en su lugar.

He desinstalado MySQL version 5.7.9 para Mac OS X 10.9 (x86, 64-bit), DMG Archivo y, a continuación, instalar la versión anterior, MySQL version 5.6.7 para Mac OS X 10.9 (x86, 64-bit), Archivo DMG. Este problema está resuelto. La contraseña autogenerada dada antes de terminar la instalación de esta versión anterior se ha ido y finalmente puedo acceder a la base de datos utilizando root como nombre de usuario y una contraseña en blanco. Todo está funcionando como un encanto!

 0
Author: Cheetah Felidae,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-26 16:48:56

Instalé view brew, y tuve el mismo mensaje de error hasta que noté esta advertencia:

Hemos instalado su base de datos MySQL sin una contraseña de root. Para asegurarlo ejecutar: mysql_secure_installation

Para conectar ejecutar: mysql-uroot

Para que launchd inicie mysql ahora y reinicie al iniciar sesión: servicios de brew start mysql

O, si no desea / necesita un servicio en segundo plano, puede ejecutar: mysql.inicio del servidor

 0
Author: as21,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-31 23:47:06

Resolví este problema ejecutando 'mysql -u root -p --connect-expired-password' Luego ingrese la contraseña de generación automática expirada desde mysql. Finalmente entró. Base de datos mysql seleccionada con 'use mysql' y luego se actualizó el usuario 'root' pw con 'ALTER USER 'root'@'localhost' IDENTIFIED BY 'your new password'

 0
Author: Shelby Bedzyk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-05 00:08:42

Instalar MySQL manualmente descargando paquetes por primera vez genera una contraseña predeterminada para root. Copiar y guardar. Si no se hace de alguna manera en sucesivas re-instalaciones no muestra esa contraseña.

Por lo tanto, no puede iniciar sesión en root. Haga lo siguiente :

  1. Encuentra entradas relacionadas con mysql de system sudo find / -name mysql
  2. Elimine todas las entradas relacionadas con mysql haciendo rm -rf <mysql_entries_above>
  3. Descargue la última versión de mysql-server e intall it.
  4. Usted será promovido con un contraseña predeterminada que necesita copiar.
  5. Ejecute mysql_secure_installation y pegue esa contraseña cuando se le pida root.
  6. Posteriormente siga los pasos y cambie la contraseña de administrador cuando se le solicite.
 0
Author: Souvik Das,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-24 11:37:44