No puedo entender mi contraseña de root de MySQL; ¿Cómo puedo averiguar esto? ¿Hay algún archivo donde se almacena esta contraseña?
Estoy siguiendo este enlace pero no tengo el directorio directadmin en local.
No puedo entender mi contraseña de root de MySQL; ¿Cómo puedo averiguar esto? ¿Hay algún archivo donde se almacena esta contraseña?
Estoy siguiendo este enlace pero no tengo el directorio directadmin en local.
Respuestas:
Gracias a @thusharaK pude restablecer la contraseña de root sin conocer la contraseña anterior.
En ubuntu hice lo siguiente:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
Luego ejecute mysql en una nueva terminal:
mysql -u root
Y ejecute las siguientes consultas para cambiar la contraseña:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
En MySQL 5.7, se eliminó el campo de contraseña en el campo de tabla mysql.user, ahora el nombre del campo es 'autenticación_cadena'.
Salga del modo seguro mysql e inicie el servicio mysql:
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown
, con la nueva contraseña.
mysql -u root
. Muestra errorAccess denied
No puede ver la contraseña hash; ¡lo único que puedes hacer es reiniciarlo!
Detener MySQL:
sudo service mysql stop
o
$ sudo /usr/local/mysql/support-files/mysql.server stop
Comience en modo seguro:
$ sudo mysqld_safe --skip-grant-tables
(la línea de arriba es el comando completo)
Este será un comando continuo hasta que finalice el proceso, así que abra otra ventana de shell / terminal, inicie sesión sin contraseña:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
MySQL 5.7 y superior:
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
Inicie MySQL:
sudo mysql start
o
sudo /usr/local/mysql/support-files/mysql.server start
Su nueva contraseña es 'contraseña'.
mysql_secure_installation
y root ya no estaba cooperando. ¿Qué hace la authentication_string
configuración?
mysqladmin -u root -p shutdown
con la nueva contraseña entoncessudo service mysql start
MySQL 5.7 y superior guarda la raíz en el archivo de registro de MySQL.
Por favor intente esto:
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysql/error.log
contenía una advertencia sobre que la contraseña de root estaba vacía, así que esto me salvó el día :)
Una cosa que me hizo tropezar en una nueva instalación de mySQL y me pregunto por qué no pude hacer funcionar la contraseña predeterminada y por qué incluso los métodos de restablecimiento no funcionaban. Resulta que en Ubuntu 18 la versión más reciente del servidor mysql no usa autenticación de contraseña para el usuario root de forma predeterminada. Esto significa que no importa en qué lo configures, no te permitirá usarlo. espera que inicies sesión desde un socket privilegiado. entonces
mysql -u root -p
¡no funcionará en absoluto, incluso si está utilizando la contraseña correcta! negará el acceso sin importar lo que ingrese.
En cambio, necesitas usar
sudo mysql
eso funcionará sin ninguna contraseña. entonces una vez en que necesita escribir
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
luego cierre sesión y ahora lo sangriento finalmente aceptará su contraseña
No puedes encontrarlo. Se almacena en una base de datos, a la que necesita la contraseña de root para acceder, e incluso si de alguna manera obtuvo acceso, está codificado con un hash unidireccional. Puede restablecerlo: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Siga estos pasos para restablecer la contraseña en el sistema Windows
Detener el servicio Mysql desde el administrador de tareas
Cree un archivo de texto y pegue la siguiente declaración
MySQL 5.7.5 y anterior:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6 y posterior:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
Guardar como mysql-init.txt
y colocarlo en 'C' drive
.
Abra el símbolo del sistema y pegue lo siguiente
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt
. Agregué el comando anterior SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
a /root/m.txt
A menos que el administrador de paquetes le solicite que escriba la contraseña de root durante la instalación, la contraseña de root predeterminada es la cadena vacía. Para conectarse al servidor recién instalado, escriba:
shell> mysql -u root --password=
mysql>
Para cambiar la contraseña, recupere el shell de Unix y escriba:
shell> mysqladmin -u root --password= password root
La nueva contraseña es 'root'. Ahora conéctese al servidor:
shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Vaya, la contraseña ha cambiado. Use el nuevo root
:
shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
¡Bingo! Nuevo haz algo interesante
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
Maurycy
Además de las otras respuestas, en una instalación de cpanel, la contraseña raíz de mysql se almacena en un archivo llamado /root/.my.cnf
. (y el servicio cpanel lo restablece al cambiar, por lo que las otras respuestas aquí no ayudarán)
puede ver la contraseña de root de mysql, bueno, lo he probado en mysql 5.5, así que no sé si otra versión nueva funciona bien o no
nano ~/.my.cnf
Esto funcionó para mí:
En terminal escriba lo siguiente
$ sudo mysql -u root -p
Introducir la contraseña:// solo presione enter
mysql>
La contraseña predeterminada que funcionó para mí después de la instalación inmediata del servidor mysql es: mysql
El procedimiento cambia según la versión de MySql. Siga el procedimiento exactamente como se describe para su versión:
CONSEJOS: lea antes de la página de instrucciones para su versión de MySql *
En el paso 5: en lugar de ejecutar CMD, cree un acceso directo en su escritorio llamando a CDM.exe. Luego haga clic derecho en el acceso directo y seleccione "Ejecutar como administrador".
En el paso 6: omita la primera versión propuesta del comando y ejecute la segunda, la que tiene el parámetro --defaults-file
Una vez que ejecuta el comando, si todo está bien, la ventana CMD permanece abierta y el comando del paso 6 continúa ejecutándose. Simplemente cierre la ventana (haga clic en 'x'), y luego fuerce el cierre de MySQl desde el Administrador de tareas.
Elimine el archivo con los comandos SQL y comience nuevamente MySQL. La contraseña debe cambiarse ahora.
5.0 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
... solo cambia la versión en el enlace (5.5, 5.6, 5.7)
En su archivo .err "hostname" dentro de la carpeta de datos en la que trabaja MySQL, intente buscar una cadena que comience con:
"Se genera una contraseña temporal para roor @ localhost"
puedes usar
less /mysql/data/dir/hostname.err
luego barra diagonal seguida de la cadena que desea buscar
/"A temporary password"
Luego presione n, para ir al siguiente resultado.
Las respuestas proporcionadas aquí no parecían funcionar para mí, el truco resultó ser: ALTERAR USUARIO 'root' @ 'localhost' IDENTIFICADO CON mysql_native_password BY 'test';
(respuesta completa aquí: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ )
Sistema:
Procedimiento:
Abra dos sesiones de shell, inicie sesión en una como usuario root de Linux y en la otra como usuario no root con acceso al mysql
comando.
En su sesión raíz, detenga el oyente mysqld normal e inicie un oyente que omita la autenticación de contraseña ( nota: esto es un riesgo de seguridad significativo ya que cualquier persona con acceso al mysql
comando puede acceder a sus bases de datos sin una contraseña. Es posible que desee cerrar sesiones activas de shell y / o deshabilitar el acceso de shell antes de hacer esto):
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
En su sesión no root, inicie sesión en mysql y configure la contraseña de root de mysql:
$ mysql
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
En su sesión raíz, elimine la instancia sin contraseña de mysqld y restaure el oyente mysqld normal al servicio:
# kill %1
# systemctl start mysqld
En su sesión no root, pruebe la nueva contraseña de root que configuró anteriormente:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
Resolví esto de una manera diferente, esto puede ser más fácil para algunos.
Lo hice de esta manera porque intenté iniciar en modo seguro pero no puedo conectarme con el error: ERROR 2002 (HY000): No puedo conectarme al servidor MySQL local a través del socket '/var/run/mysqld/mysqld.sock' (2)
Lo que hice fue conectarme normalmente como root:
$ sudo mysql -u root
Luego creé un nuevo superusuario:
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
Luego inicie sesión como myuser
$ mysql -u myuser -p -h localhost
Intentar cambiar la contraseña no me dio errores, pero no hizo nada por mí, así que solté y volví a crear el usuario root
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
El usuario root ahora está trabajando con la nueva contraseña
Vaya a phpMyAdmin> config.inc.php> $ cfg ['Servidores'] [$ i] ['contraseña'] = '';
phpmyadmin
.