unknown password how for first contraseƱa column change cambiar mysql centos

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

  1. systemd ahora se usa para cuidar mySQL en lugar de mysqld_safe (por lo que obtienes el -bash: mysqld_safe: command not found - no está instalado)

  2. 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

  1. Establecer la opción de entorno mySQL systemctl set-environment MYSQLD_OPTS = "- skip-grant-tables"

  2. Comience a usar las opciones que acaba de configurar systemctl start mysqld

  3. Iniciar sesión como root mysql -u root

  4. 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.