mysql - por - recuperar contraseña phpmyadmin ubuntu
Mysql(MariaDB 10.0.29): ¿Establecer contraseña de root, pero aún así puede iniciar sesión sin pedir contraseña? (2)
Quiero proteger mysql estableciendo la contraseña de root. Reajusté la contraseña de root con éxito:
MariaDB [(none)]> select Host, User, Password from mysql.user;
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *58319282EAB9E38D49CA25844B73DA62C80C2ABC |
+-----------+------+-------------------------------------------+
1 row in set (0.00 sec)
Pero, después de vaciar los privilegios, reinicie Mysql, todavía puedo iniciar sesión en mysql (en el host local) sin escribir la contraseña.
root@myhost:/# mysql
Welcome to the MariaDB monitor. Commands end with ; or /g.
Your MariaDB connection id is 10
Server version: 10.0.29-MariaDB SLE 12 SP1 package
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type ''help;'' or ''/h'' for help. Type ''/c'' to clear the current input statement.
MariaDB [(none)]>
¿Cómo puedo forzar mi contraseña pidiendo mysql al conectar? Gracias !
En la tabla MySQL tienes una columna llamada plugin:
MariaDB [(none)]> SELECT host, user, password, plugin FROM mysql.user LIMIT 0,1;
+-----------+------+-------------------------------------------+--------+
| host | user | password | plugin |
+-----------+------+-------------------------------------------+--------+
| localhost | root | * | |
+-----------+------+-------------------------------------------+--------+
1 row in set (0.00 sec)
Si recuerdo correctamente, el complemento predeterminado para las instalaciones de mariaDB es ''console'' o ''unix_socket'', y este complemento te permite ingresar sin contraseña desde la consola. Pero también desactive la autenticación con contraseña y no podrá conectarse desde otros clientes.
Simplemente actualice el campo del complemento con un valor vacío (''''), y luego, utilice FLUSH PRIVILEGES;
SET PASSWORD FOR ''root''@''localhost'' = PASSWORD(''MyNewPass'');
UPDATE mysql.user SET plugin = '''' WHERE user = ''root'' AND host = ''localhost'';
FLUSH PRIVILEGES;
Con esto, tienes el problema resuelto.
Sé que esta pregunta es antigua, pero tuve el mismo problema y los pasos a continuación resolvieron mi problema:
en el terminal de Linux, ejecute el siguiente comando para establecer una nueva contraseña para el usuario root, omita este paso, si la contraseña de root ya está establecida.
mysqladmin --user=root password "newpassword"
Inicia sesión en mysql
mysql -uroot -p
Introduzca la contraseña de usuario ''root''
Ejecutar la siguiente consulta en la consola MariaDB
MariaDB [(none)]> select host,user,password from mysql.user;
Es posible que observe que algunos registros con valores de columna de ''usuario'' están '''' (vacíos); elimine esos registros utilizando la siguiente consulta
MariaDB [(none)]> delete from mysql.user where user='''';
MariaDB [(none)]> flush privileges;
Query OK, 2 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
#$ mysql
ERROR 1045 (28000): Access denied for user ''''@''localhost'' (using password: NO)
No podrá iniciar sesión en mysql sin contraseña después de seguir los pasos anteriores.