Desactivar --skip-grant-tables en MySQL

13

Soy bastante nuevo en el uso de Linux, pero estoy configurando mis bases de datos MySQL en una instancia de Amazon ec2. Seguí algunas instrucciones que encontré acerca de restablecer el pase de inicio de sesión de usuario utilizando la --skip-grant-tablesopción de MySQL. Ahora estoy tratando de agregar un usuario y no puedo entender cómo desactivar esa opción.

Esto es lo que estoy tratando de hacer:

mysql> GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON ...my db username and pass

pero me sale este error:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

¿Cómo desactivo esta opción?

usuario718229
fuente

Respuestas:

3

Simplemente deténgase y reinicie MySQL normalmente.

Michael Hampton
fuente
2

Puede hacer esto mediante los siguientes pasos.

[root@backups1 mysql5.7]# bin/mysqld_safe --skip-grant-tables --user=mysql

conéctese a su mysql sin contraseña.

mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '';
mysql> flush privileges;

cambie al modo normal de mysql y luego conéctese sin contraseña.

Esto seguramente funcionará para usted.

Mansur Ali
fuente
0

Ayer me encontré con un problema similar. El servidor estaba usando Amazon Linux 2 como SO y el repositorio oficial de yum (los el7) como medio de instalación.

Especialmente cuando está utilizando MySQL del repositorio oficial de yum, MySQL se instalará como un servicio systemd. En tal caso, se puede comprobar cómo el proceso de MySQL se inicia mediante la ejecución de comando siguiente: sudo service mysql status -l. Esto da como resultado una descripción del estado actual del servicio mysql actual. De esas descripciones, pude encontrar la siguiente línea:

  Process: 26474 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS

En mi entorno, resultó que la MYSQLD_OPTSvariable fue establecida con la --skip-grant-tablesopción de valor por el proceso systemd. Para confirmar las variables de entorno establecidas por systemd, puede ejecutar sudo systemctl showy buscar una línea que comience con Environment=.

Para cambiar esta variable de entorno, ejecuté el siguiente comando.

sudo systemctl set-environment MYSQLD_OPTS=""

Después de esta operación, reinicié el servicio mysqld sudo service mysql restarty todo funcionaba perfectamente.

Yuki Inoue
fuente