Cómo iniciar MySQL con la opción –skip-grant-tables?

He bloqueado mi usuario root de la base de datos. Necesito obtener todos los privilegios de vuelta a la raíz del usuario. Tengo mi contraseña y puedo iniciar sesión en MySQL. Pero el usuario root no tiene todos los privilegios.

  • Mysql tiene un paso a paso manual para hacer esto: Restablecer contraseña root de mysql
  • No hay ningún comando dadas en la página para iniciar mysqld con la opción –skip-grant-tables. Me gusta que mis artículos con ‘copiar y pegar’ suavidad! 🙂
  • Ese es el artículo que estoy tratando de seguir — no dice exactamente cómo iniciar con la opción de comando. Simplemente «Dejar de mysqld y reiniciar con la opción –skip-grant-tables opción.»
  • comando: mysqld –skip-grant-tables
  • mysql --skip-grant-tables devuelve: mysql: unknown option '--skip-grant-tables' Si era así de simple, no creo OP hubiera hecho la pregunta.
  • los comandos ‘mysql’ y ‘mysqld» no son la misma (nota de la «d»). mysqld –skip-grant-tables funciona como se esperaba.
  • mysql es el cliente que utiliza para conectarse y mysqld es d demonio. Por lo general, es aquí /etc/rc.d/init.d/mysqld start --skip-grant-tables. Si usted trabaja con los demonios, como un servidor, has de saber que la inicialización.d.
  • Pero no tengo mysqld. Al menos cuando yo escriba en la barra de búsqueda, no aparece nada. Sólo mysql. Es una instalación independiente? Estoy usando MySQL 5.7.
  • /etc/init.d/mysql start --skip-grant-tables simplemente no obedecer. Puedo empezar mysqld directamente, pero entonces mysql_upgrade errores porque no encuentra el archivo socket.
  • Usted ha no se incluye la «D» de la carta en el comando. Para aclarar, mysqld es el servidor y mysql es el cliente. El cliente nunca (y no es la intención de a) aceptar dicho argumento. Es en el lado del servidor, usted tiene que iniciar el servidor con esos argumentos, a continuación, conectar con el cliente posteriormente.
  • El ejecutable de / proceso en sí mismo es mysqld, pero el servicio/init.d script para la servidor se llama mysql. Puedo iniciar el mysqld manualmente como un proceso, pero luego la sock archivo socket no está configurado correctamente, sin más parametrización como lo hace cuando funciona como un demonio con el /etc/init.d/mysql (no «d»). Así que si usted comienza el mysqld de esa manera, el mysql_upgrade falla.
  • No estoy completamente seguro de por qué, servicio de mysql se llama mysql en lugar de mysqld, si usted hace una cat /etc/init.d/myql verás un script de bash, que llama a mysqld binario. Olvídalo, no es necesario que el servicio se ejecute mysqld por su propia cuenta. Creo que eres missunderstanding algo. Detener el servicio, a continuación, intente ejecutar mysqld --skip-grant-tables o mejor aún, trate con el mysqld_safe opción que @Arpit comentó stackoverflow.com/a/47687614/2480481

InformationsquelleAutor Steven | 2009-11-10

11 Kommentare

  1. 41

    Yo tenía el mismo problema que el título de esta pregunta, por lo que en caso que alguien de google sobre esta cuestión y quiere iniciar MySql en ‘skip-grant-tables’ el modo en Windows, aquí es lo que yo hice.

    Detener el servicio de MySQL a través de herramientas de Administrador de Servicios.

    Modificar el mi.ini archivo de configuración (suponiendo que las rutas de acceso 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 el SERVIDOR SECCIÓN [mysqld], agregue la siguiente línea:

    skip-grant-tables

    de modo que usted tiene

    # 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

    Iniciar de nuevo el servicio y usted debería ser capaz de iniciar sesión en la base de datos sin una contraseña.

    • la ubicación para mi.archivo ini está en C:\ProgramData\MySQL\MySQL Server 5.6 no Program Files carpeta
    • Genial, ¿alguien sabe cómo hacer esto en unix? /etc/my.cnf no es el lugar para poner «skip-grant-tables», me sale «mysql: desconocido opción–skip-grant-tables'» si me quedo mysql con él allí.
    • He editado el /etc/my.cnf y añadió [mysqld] y en la línea siguiente entró skip-grant-tables sin la --, y con un reinicio de MySQL funcionó.
  2. 34

    Cómo volver a tomar el control de usuario root en MySQL.

    PELIGRO: ARRIESGADO OPERATTION

    • De inicio de sesión ssh (el uso de la raíz, si es posible).
    • Editar my.cnf archivo usando.

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

      skip-grant-tables
    • Guardar y salir.

    • Reiniciar el servicio de MySQL.

      service mysql restart
    • Comprobar el estado del servicio.

      service mysql status
    • Conectarse a mysql.

      mysql
    • El uso principal de la base de datos.

      use mysql;
    • Redefinir usuario contraseña de root.

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

      sudo vi /etc/my.cnf
    • Borra la línea.

      skip-grant-tables
    • Guardar y salir.

    • Reiniciar el servicio de MySQL.

      service mysqld restart
    • Comprobar el estado del servicio.

      service mysql status
    • Conectarse a la base de datos.

      mysql -u root -p
    • A escribir la nueva contraseña cuando se le solicite.

    Esta acción es extremadamente peligrosa, ya que permite que cualquiera se conecte a todas las bases de datos sin restricción sin un usuario y contraseña. Debe usarse con cuidado y debe ser revertida rápidamente para evitar riesgos.

    • service mysqld restart está mal – service mysql restart es correcta
    • Para MySQL 5.7 (en Ubuntu) el .cnf archivo tuve que editar se encuentra en /etc/mysql/mysql.conf.d
  3. 6

    Después de intentar muchas de las cosas, esto es lo que ha funcionado para mí:

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

    Lo primero usamos sudo para iniciar sesión en mysql como root, sin necesidad de una contraseña. Entonces sólo tiene que actualizar la contraseña de root.

    Después de eso, he reiniciado mysqld:

    sudo service mysql restart

    Y la newpassword sesión de root en!

    • Las otras respuestas no me ayuda, pero su método de trabajo. gracias
  4. 4

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

    Comprobar si mysql se ejecuta el proceso:

    sudo service mysql status

    Si runnning, a continuación, detener el proceso:
    (Asegúrese de cerrar todas las entregas de la herramienta)

    sudo service mysql stop

    Si usted tiene problema de parada, a continuación, haga lo siguiente

    De búsqueda para el proceso: ps aux | grep mysqld
    Matar el proceso: kill -9 process_id

    Ahora iniciar mysql en modo seguro con skip subvención

    sudo mysqld_safe --skip-grant-tables &
  5. 2

    Si usted usa mysql 5.6 server y tengo problemas con C:\Program Files\MySQL\MySQL Server 5.6\my.ini:

    Usted debe ir a C:\ProgramData\MySQL\MySQL Server 5.6\my.ini.

    Debe agregar skip-grant-tables y, a continuación, usted 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: después de que haya terminado con su trabajo en skip-grant-tables, debe restaurar el archivo de C:\ProgramData\MySQL\MySQL Server 5.6\my.ini.

    • Para los usuarios de fedora linux, el archivo va a ser de mi.cnf bajo el directorio /etc/. Agregar skip-grant-tables de la línea en el archivo y reinicie el servicio mysqld por «service mysqld restart» de comandos. Gracias
  6. 2

    si se están ejecutando en Apple MacBook OSX a continuación:

    1. Detener su servidor MySQL (si ya se está ejecutando).
    2. Encontrar su archivo de configuración de MySQL, my.cnf. (Para mí fue colocado @
      /Applications/XAMPP/xamppfiles/etc. Usted puede buscar sólo si
      no se puede encontrar).
    3. Abrir my.cnf archivo en cualquier editor de texto.
    4. Agregar "skip-grant-tables" (sin comillas) al final de [mysqld] sección y guarde el archivo.
    5. Ahora ejecute el servidor MySQL. Va a empezar con skip-grant-tables opción.

    Hacer lo que quieras ya!!!!

    PS: por Favor, elimine skip-grant-tables de my.cnf archivo una vez que haya terminado con lo que sea que quieras hacer otra COSA MySQL server se ejecutará siempre sin acceder a subvenciones.

  7. 0

    si se trata de un cuadro de windows, lo más sencillo es dejar de los servidores, agregar skip-grant-tables para el archivo de configuración de mysql, y reinicie el servidor.

    una vez que hayas solucionado tus problemas con los permisos, repita el procedimiento anterior pero quitar el skip-grant-tables opción.

    si usted no sabe donde está su archivo de configuración, a continuación, inicie sesión en mysql enviar SHOW VARIABLES LIKE '%config%' y una de las filas devueltas le dirá a donde el archivo de configuración es.

    • Yo no sé dónde está el archivo de configuración.
    • ver mi post actualizado. pero honestamente, si usted está teniendo este problema Y no saber dónde se encuentra su archivo de configuración, usted debe tener a alguien más experimentado arreglarlo para usted. a menos que esto es sólo el personal de la base de datos que estás aprendiendo en, a continuación, seguir adelante y aprender de distancia. 🙂
    • De Error de consulta SQL: Editar GRANT ALL PRIVILEGES ON * . * A ‘root’@’localhost’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; MySQL dijo: Documentación #1290 – MySQL se está ejecutando el servidor con la opción –skip-grant-tables opción por lo que no se puede ejecutar esta instrucción Se puede ver, he iniciado sesión en MySQL con la opción –skip-grant-tables opción. Pero cuando traté de obtener todos los privilegios de la espalda para el usuario root, yo no.
    • Tan simple. Mucho más fácil.
  8. 0

    Editar mi.archivo ini y agregar skip-grant-tables y reiniciar el 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 
  9. 0

    Estoy en windows 10, usando WAMP64 servidor. Buscó my.cnf y my.ini. Encuentra my.ini en C:\wamp64\bin\mariadb\mariadb10.2.14.

    Siguiendo las instrucciones de los compañeros de la:

    1. Abre el menú de inicio rápido de Wampserver, selecciona «Detener Todos los Servicios de’
    2. Abrió my.ini en un editor de texto, busca [mysqld]
    3. Añadido 'skip-grant-tables' al final de la [mysqld] sección (pero dentro de ella)
    4. Guardar el archivo, salga del editor abierto
    5. En el Wampserver menú, seleccione «Reiniciar los Servicios». Habrá una advertencia acerca de la skip-grant-tables opción
    6. En el Wampserver menú seleccionar MySQL para abrir el símbolo del sistema
    7. Se le pide una contraseña, presione entrar
    8. Pegar el comando ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
    9. Se debe informar que la operación fue exitosa (sin tablas afectadas)
    10. En el my.ini archivo, borrar el 'skip-grant-tables' línea, guardar el archivo
    11. En el WampServer menú, seleccione una vez más Reiniciar el Servicio

    Ahora puedes entrar con la nueva contraseña. Gracias a todas las respuestas aquí.

  10. 0

    Por favor, ejecute este siguiente comando desde la consola para permitir que el usuario de la tabla de verificación, mientras que el lanzamiento de la base de datos mysql desde el símbolo del sistema

    mysqld -skip-grant-tables

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea