usuario recuperar por defecto contraseƱa como cambiar mysql ubuntu ubuntu-16.04 root change-password

recuperar - usuario root mysql



No se puede restablecer la contraseƱa de root con--skip-grant-tables en ubuntu 16 (3)

Descubrí que mysql.sock se elimina cuando el servicio mysql se detiene y mysqld_safe no puede crearlo (no pude encontrar el motivo), por lo que mi solución hizo una copia de seguridad de la carpeta de calcetines y se restauró antes de iniciar mysqld_safe

Iniciar servidor

$ sudo service mysql start

Ir a la carpeta de calcetines

$ cd /var/run

Una copia de seguridad del calcetín

$ sudo cp -rp ./mysqld ./mysqld.bak

Detener servidor

$ sudo service mysql stop

Restaurar el calcetín

$ sudo mv ./mysqld.bak ./mysqld

Iniciar mysqld_safe

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

Inicial shell mysql

mysql -u root

Cambia la contraseña

FLUSH PRIVILEGES; SET PASSWORD FOR root@''localhost'' = PASSWORD(''my_new_password'');

Estoy tratando de restablecer la contraseña de root después de MysqlPasswordReset pero cuando intento iniciar el servidor con --skip-grant-tables, el servidor no se inicia

  • Ubuntu 16.04.1 LTS (GNU / Linux 4.4.0-59-genérico x86_64)
  • mysql Ver 14.14 Distrib 5.7.17, para Linux (x86_64)

El servidor esta funcionando

$ mysql -u root ERROR 1045 (28000): Access denied for user ''root''@''localhost'' (using password: NO)

Detener servidor

$ sudo /etc/init.d/mysql stop [ ok ] Stopping mysql (via systemctl): mysql.service.

Tratando de comenzar con --skip-grant-tables

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking & [1] 9856

Conectar sin contraseña

$ mysql -u root ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/var/run/mysqld/mysqld.sock'' (2) [1]+ Exit 1 sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking

También intenté comenzar con mysql_safe (error.log está vacío)

sudo mysqld_safe --skip-grant-tables 2017-02-01T16:33:31.382105Z mysqld_safe Logging to syslog. 2017-02-01T16:33:31.383942Z mysqld_safe Logging to ''/var/log/mysql/error.log''. 2017-02-01T16:33:31.386058Z mysqld_safe Logging to ''/var/log/mysql/error.log''. 2017-02-01T16:33:31.388009Z mysqld_safe Directory ''/var/run/mysqld'' for UNIX socket file don''t exists.



pedronalbert''s respuesta anterior de pedronalbert''s funcionó para mí, pero el último paso ahora está obsoleto y lanza la siguiente advertencia:

Advertencia | 1287 | ''SET PASSWORD FOR = PASSWORD ('' '')'' está en desuso y se eliminará en una versión futura. Utilice SET PASSWORD FOR = '''' en su lugar

Utilice este comando en su lugar:

SET PASSWORD FOR root = ''<plaintext_password>'';