Si realmente ha establecido una contraseña de root y la ha perdido/olvidado:
- Detener MySQL
-
Reinícielo manualmente con la opción skip-grant-tables:
mysqld_safe --skip-grant-tables
-
Ahora, abra una nueva ventana de terminal y ejecute el cliente MySQL:
mysql -u root
-
Restablezca la contraseña de root manualmente con este comando MySQL:
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Si está usando MySQL 5.7 (compruebe usando mysql --version en la Terminal), entonces el comando es:UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
-
Descarga los privilegios con este comando de MySQL:
FLUSH PRIVILEGES;
Desde http://www.tech-faq.com/reset-mysql-password.shtml
(Tal vez esto no sea lo que necesitas, Abs, pero creo que podría ser útil para las personas que se encuentren con esta pregunta en el futuro)
Intenta conectarte sin ninguna contraseña:
mysql -u root
Creo que el valor predeterminado inicial es que no hay contraseña para la cuenta raíz (que obviamente debería cambiarse lo antes posible).
use este comando para verificar la posible salida
mysql> select user,host,password from mysql.user;
salida
mysql> select user,host,password from mysql.user;
+-------+-----------------------+-------------------------------------------+
| user | host | password |
+-------+-----------------------+-------------------------------------------+
| root | localhost | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | 127.0.0.1 | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | % | |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
- En este usuario, el administrador no podrá iniciar sesión desde otro host aunque haya otorgado permiso. la razón es que el usuario administrador no está identificado por ninguna contraseña.
-
Otorgue al administrador del usuario una contraseña usando el comando GRANT una vez más
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED by 'password'
luego verifique la LISTA DE CONCESIONES, la salida será como la suya
mysql> select user,host,password from mysql.user;
+-------+-----------------------+-------------------------------------------+
| user | host | password |
+-------+-----------------------+-------------------------------------------+
| root | localhost | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | 127.0.0.1 | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | % | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
si el usuario deseado, por ejemplo, el usuario 'admin' necesita poder iniciar sesión, entonces use una vez el comando GRANT y ejecute el comando.
Ahora el usuario debería poder iniciar sesión.