how - reset mysql root password ubuntu
Cambiar la contraseƱa de root de mysql en Centos7 (6)
He instalado mySQL en una vm de Centos7 pero tengo problemas para iniciar sesión con Root. Traté de iniciar sesión sin contraseña o intenté alguno predeterminado (como mysql, admin, etc.) Miré en el archivo my.cnf y no tengo contraseña. Traté de cambiar la contraseña deteniendo el servicio y reiniciando con mysqld_safe --skip-grant-tables &
pero obtengo ese mysqld_safe:command not found
No tengo idea de qué más hacer. ¡Cualquier consejo / idea sería muy apreciado!
¿Qué versión de mySQL estás usando? Estoy usando 5.7.10 y tuve el mismo problema al iniciar sesión como root
Hay 2 problemas: ¿por qué no puedo iniciar sesión como root para comenzar y por qué no puedo usar ''mysqld_safe` para iniciar mySQL y restablecer la contraseña de root.
No tengo ninguna respuesta para configurar la contraseña de root durante la instalación, pero esto es lo que debe hacer para restablecer la contraseña de root
Edite la contraseña de inicio de root en la instalación se puede encontrar ejecutando
grep ''temporary password'' /var/log/mysqld.log
http://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html
systemd
ahora se usa para cuidar mySQL en lugar demysqld_safe
(por lo que obtienes el-bash: mysqld_safe: command not found
- no está instalado)La estructura de la tabla de
user
ha cambiado.
Por lo tanto, para restablecer la contraseña de root, todavía inicia mySQL con las --skip-grant-tables
y actualiza la tabla de user
, pero la forma en que lo hace ha cambiado.
1. Stop mysql:
systemctl stop mysqld
2. Set the mySQL environment option
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Start mysql usig the options you just set
systemctl start mysqld
4. Login as root
mysql -u root
5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD(''MyNewPassword'')
-> WHERE User = ''root'' AND Host = ''localhost'';
mysql> FLUSH PRIVILEGES;
mysql> quit
*** Edit ***
As mentioned my shokulei in the comments, for 5.7.6 and later, you should use
mysql> ALTER USER ''root''@''localhost'' IDENTIFIED BY ''MyNewPass'';
Or you''ll get a warning
6. Stop mysql
systemctl stop mysqld
7. Unset the mySQL envitroment option so it starts normally next time
systemctl unset-environment MYSQLD_OPTS
8. Start mysql normally:
systemctl start mysqld
Try to login using your new password:
7. mysql -u root -p
Referencia
Como dice en http://dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html ,
Nota
A partir de MySQL 5.7.6, para la instalación de MySQL usando una distribución de RPM, el inicio y el apagado del servidor es administrado por systemd en varias plataformas Linux. En estas plataformas, mysqld_safe ya no está instalado porque no es necesario. Para obtener más información, consulte la Sección 2.5.10, "Gestión del servidor MySQL con systemd".
Lo cual lo lleva a http://dev.mysql.com/doc/refman/5.7/en/server-management-using-systemd.html donde menciona el systemctl set-environment MYSQLD_OPTS=
hacia la parte inferior de la página.
Los comandos de restablecimiento de contraseña se encuentran en la parte inferior de http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Para mí, trabaja así: 1. Detener mysql: systemctl stop mysqld
Establecer la opción de entorno mySQL systemctl set-environment MYSQLD_OPTS = "- skip-grant-tables"
Comience a usar las opciones que acaba de configurar systemctl start mysqld
Iniciar sesión como root mysql -u root
Después del inicio de sesión, uso FLUSH PRIVILEGES; dile al servidor que vuelva a cargar las tablas de concesión para que funcionen las instrucciones de gestión de cuentas. Si no lo hago, recibo este error tratando de actualizar la contraseña: "No se puede encontrar ninguna fila coincidente en la tabla de usuario"
Por favor, detenga todos los servicios MySQL con el siguiente comando /etc/init.d/mysqld stop Después de usar esto
mysqld_safe --skip-grant-tables
puede funcionar correctamente
Todas,
Aquí un poco de torsión con mysql-community-server 5.7 Comparto algunos pasos, cómo restablecer la contraseña de root de mysql5.7 o establecer la contraseña. funcionará centos7 y RHEL7 también.
paso 1. Primero pare sus bases de datos
service mysqld stop
paso 2. 2nd modify /etc/my.cnf file add "skip-grant-tables"
vi /etc/my.cnf
[mysqld] skip-grant-tables
paso 3. 3rd start mysql
service mysqld start
etapa 4. seleccione la base de datos predeterminada de mysql
mysql -u root
mysql>use mysql;
etapa 4. establecer una nueva contraseña
mysql> update user set authentication_string=PASSWORD("yourpassword") where User=''root''
;
step5 reinicia la base de datos mysql
service mysqld restart
mysql -u root -p
disfrutar :)
Use los pasos a continuación para restablecer la contraseña.
$ sudo systemctl start mysqld
Restablezca la contraseña de root del servidor MySql.
$sudo grep ''temporary password'' /var/log/mysqld.log
Salida Algo como-:
10.744785Z 1 [Note] A temporary password is generated for root@localhost: o!5y,oJGALQa
Use la contraseña anterior durante el proceso de restablecimiento mysql_secure_installation.
<pre>
$ sudo mysql_secure_installation
</pre>
Securing the MySQL server deployment.
Enter password for user root:
Ha restablecido correctamente la contraseña de root del servidor MySql. Use el siguiente comando para verificar si el servidor mysql se está conectando o no.
$ mysql -u root -p
http://gotechnies.com/install-latest-mysql-5-7-rhelcentos-7/
Utilicé el consejo de Kevin Jones anterior con el siguiente cambio de skip-networking para una seguridad ligeramente mejor:
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
[user@machine ~]$ mysql -u root
Luego, al intentar restablecer la contraseña, recibí un error, pero buscar en Google en otro lugar me sugirió que simplemente podría seguir adelante. Lo siguiente funcionó:
mysql> select user(), current_user();
+--------+-----------------------------------+
| user() | current_user() |
+--------+-----------------------------------+
| root@ | skip-grants user@skip-grants host |
+--------+-----------------------------------+
1 row in set (0.00 sec)
mysql> ALTER USER ''root''@''localhost'' IDENTIFIED BY ''sup3rPw#''
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)
mysql> ALTER USER ''root''@''localhost'' IDENTIFIED BY ''sup3rPw#''
Query OK, 0 rows affected (0.08 sec)
mysql> exit
Bye
[user@machine ~]$ systemctl stop mysqld
[user@machine ~]$ sudo systemctl unset-environment MYSQLD_OPTS
[user@machine ~]$ systemctl start mysqld
En ese momento, pude iniciar sesión.