¿Cómo iniciar MySQL con –skip-grant-tables?

Cerré mi usuario raíz de nuestra base de datos. Necesito devolver todos los privilegios al usuario raíz. Tengo mi contraseña y puedo iniciar sesión en MySQL. Pero el usuario raíz no tiene todos los privilegios.

    Tuve el mismo problema que el título de esta pregunta, así que si alguien más busca en esta pregunta y quiere iniciar MySql en el modo ‘skip-grant-tables’ en Windows, esto es lo que hice.

    Detenga el servicio MySQL a través de las herramientas de Administrador, Servicios.

    Modifique el archivo de configuración my.ini (suponiendo rutas predeterminadas)

     C:\Program Files\MySQL\MySQL Server 5.5\my.ini 

    o para la versión de MySQL> = 5.6

     C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 

    En la SECCIÓN DEL SERVIDOR, en [mysqld], agregue la siguiente línea:

     skip-grant-tables 

    para que tengas

     # SERVER SECTION # ---------------------------------------------------------------------- # # The following options will be read by the MySQL Server. Make sure that # you have installed the server correctly (see above) so it reads this # file. # [mysqld] skip-grant-tables 

    Comience nuevamente el servicio y debería poder iniciar sesión en su base de datos sin una contraseña.

    Cómo volver a tomar el control del usuario raíz en MySQL.

    PELIGRO: OPERACIÓN DE RIESGO

    • Inicie la sesión ssh (usando root si es posible).
    • Edite el archivo my.cnf usando.

       sudo vi /etc/my.cnf 
    • Agregar línea al bloque mysqld. *

       skip-grant-tables 
    • Guardar y Salir.

    • Reinicie el servicio MySQL.

       service mysql restart 
    • Verifique el estado del servicio.

       service mysql status 
    • Conéctese a mysql.

       mysql 
    • Usando la base de datos principal.

       use mysql; 
    • Redefina la contraseña del usuario root.

       UPDATE user SET `authentication_string` = PASSWORD('myNuevoPassword') WHERE `User` = 'root'; 
    • Edite el archivo my.cnf.

       sudo vi /etc/my.cnf 
    • Borrar línea.

       skip-grant-tables 
    • Guardar y Salir.

    • Reinicie el servicio MySQL.

       service mysqld restart 
    • Verifique el estado del servicio.

       service mysql status 
    • Conectarse a la base de datos.

       mysql -u root -p 
    • Escriba una nueva contraseña cuando se le solicite.

    Esta acción es muy peligrosa, permite a cualquier persona conectarse a todas las bases de datos sin restricciones sin un usuario y contraseña. Debe usarse con cuidado y debe revertirse rápidamente para evitar riesgos.

    En el sistema Linux puede hacer lo siguiente (debe ser similar para otros sistemas operativos)

    Compruebe si el proceso de mysql se está ejecutando:

     sudo service mysql status 

    Si está ejecutando, detenga el proceso: (Asegúrese de cerrar todas las herramientas de mysql)

     sudo service mysql stop 

    Si tienes problemas para parar, haz lo siguiente

    Búsqueda de proceso: ps aux | grep mysqld ps aux | grep mysqld Mata el proceso: kill -9 process_id

    Ahora inicie mysql en modo seguro con la concesión de omisión

     sudo mysqld_safe --skip-grant-tables & 

    Si usa el servidor mysql 5.6 y tiene problemas con C:\Program Files\MySQL\MySQL Server 5.6\my.ini :

    Deberías ir a C:\ProgramData\MySQL\MySQL Server 5.6\my.ini .

    Debería agregar skip-grant-tables y luego no necesita una contraseña.

     # SERVER SECTION # ---------------------------------------------------------------------- # # The following options will be read by the MySQL Server. Make sure that # you have installed the server correctly (see above) so it reads this # file. # # server_type=3 [mysqld] skip-grant-tables 

    Nota: una vez que haya terminado con su trabajo en skip-grant-tables , debe restaurar su archivo de C:\ProgramData\MySQL\MySQL Server 5.6\my.ini .

    si está ejecutando en Apple MacBook OSX entonces:

    1. Detenga su servidor MySQL (si ya se está ejecutando).
    2. Encuentra tu archivo de configuración de MySQL, my.cnf . (Para mí fue colocado @ /Applications/XAMPP/xamppfiles/etc Solo puede buscar si no puede encontrarlo).
    3. Abra my.cnf file en cualquier editor de texto.
    4. Agregue "skip-grant-tables" (sin comillas) al final de la sección [mysqld] y guarde el archivo.
    5. Ahora inicia tu servidor MySQL. Comenzará con la opción skip-grant-tables .

    ¡Haz lo que quieras ahora!

    PD: elimine skip-grant-tables de skip-grant-tables del archivo my.cnf una vez que haya terminado con todo lo que quiera hacer ELSE El servidor MySQL siempre se ejecutará sin concesiones de acceso.

    Utilice el siguiente comando (observe la “d”): mysqld --skip-grant-tables

    Después de probar muchas cosas, esto es lo que funcionó para mí:

     sudo mysql -u root ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword'; 

    Así que primero usamos sudo para iniciar sesión en mysql como root sin necesidad de una contraseña. Luego solo actualizamos la contraseña de root.

    Después de eso, reinicié mysqld :

     sudo service mysql restart 

    ¡Y la newpassword sesión en root!

    si se trata de un cuadro de Windows, lo más simple es detener los servidores, agregar skip-grant-tables al archivo de configuración de mysql y reiniciar el servidor.

    una vez que haya solucionado los problemas de permiso, repita lo anterior pero elimine la opción skip-grant-tables.

    si no sabe dónde está su archivo de configuración, inicie sesión en mysql envíe SHOW VARIABLES LIKE '%config%' y una de las filas devueltas le dirá dónde está su archivo de configuración.

    Edite el archivo my.ini y añada skip-grant-tables y reinicie su servidor mysql:

     [mysqld] port= 3306 socket = "C:/xampp/mysql/mysql.sock" basedir = "C:/xampp/mysql" tmpdir = "C:/xampp/tmp" datadir = "C:/xampp/mysql/data" pid_file = "mysql.pid" # enable-named-pipe key_buffer = 16M max_allowed_packet = 1M sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M log_error = "mysql_error.log" skip-grant-tables # Change here for bind listening # bind-address="127.0.0.1" # bind-address = ::1