Cuando utilicé el código mysqld_safe --skip-grant-tables &
pero recibí el error:
mysqld_safe El directorio '/ var / run / mysqld' para el archivo de socket UNIX no existe.
$ systemctl stop mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &
Lo resolví:
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
Ahora uso el mismo código mysqld_safe --skip-grant-tables &
y obtengo
mysqld_safe Inicio del demonio mysqld con bases de datos desde / var / lib / mysql
Si lo uso $ mysql -u root
obtendré:
Versión del servidor: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle y / o sus filiales. Todos los derechos reservados.
Oracle es una marca registrada de Oracle Corporation y / o sus filiales. Otros nombres pueden ser marcas registradas de sus respectivos propietarios.
Escriba "ayuda"; o '\ h' para obtener ayuda. Escriba '\ c' para borrar la declaración de entrada actual.
mysql>
Ahora es el momento de cambiar la contraseña:
mysql> use mysql
mysql> describe user;
Lectura de información de la tabla para completar los nombres de tabla y columna Puede desactivar esta función para obtener un inicio más rápido con -A
Base de datos cambiada
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
o Si tiene una cuenta raíz mysql que se puede conectar desde cualquier lugar, también debe hacer lo siguiente:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Metodo alternativo:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
Y si tiene una cuenta raíz a la que puede acceder desde cualquier lugar:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
ahora necesita quit
desde mysql y detener / iniciar
FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
ahora nuevamente 'mysql -u root -p' y use la nueva contraseña para obtener
mysql>