¿Por qué Mysql devuelve el error diciendo que no tengo acceso como usuario raíz?

Cada vez que ejecuto el siguiente código, obtengo un error de tiempo de ejecución diciendo que no tengo acceso a la base de datos. No estoy seguro de por qué eso es hapeining porque ese es el nombre de usuario raíz y contraseña que he proporcionado al configurar la base de datos. Aquí está el código:

import mysql.connector

cnx = mysql.connector.connect(user='root', password="root",
                              host='127.0.0.1',
                              database='Users')
cnx.close()

Pregunta hecha hace 3 años, 4 meses, 27 días - Por codeglitch


3 Respuestas:

  • Bueno, la razón por la que esto es peinar fue algo rara. El error "Access Denied" no tiene que significar que el nombre de usuario y la contraseña están equivocados. También podría significar que no hay una base de datos en el lugar que especificó, por lo que su acceso fue negado. Para depurar este error, tome los siguientes pasos:

    1. Asegúrese de que el nombre de usuario y la contraseña que utilizó fue el nombre de usuario real y la contraseña
    2. Asegúrese de que tiene la dirección de host correcta (por ejemplo: '127.0.0.1', y asegúrese de NO poner los números de puerto dentro de esta dirección).
    3. Asegúrese de tener un "port = Your_port_number" en sus opciones de configuración al conectarse a su base de datos.

    Cuando termine, su código debe parecer algo así:

    import mysql.connector
    
    config = {
      'user': 'root',
      'password': 'root',
      'host': '127.0.0.1',
      'port': 8889,
      'database': 'Users',
      'raise_on_warnings': True
    }
    
    cnx = mysql.connector.connect(**config)
    

    Respondida el Dec 18, 2020 a las 13:20 - por logicluminary

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás experimentando puede ocurrir por varias razones, pero las más comunes suelen ser:

    • Permisos insuficientes: Asegúrate de que el usuario 'root' tiene los permisos necesarios para acceder a la base de datos 'Users'. Puedes verificar los permisos ejecutando consultas SQL específicas desde el cliente de MySQL.
    • Configuración incorrecta del host o puerto: Asegúrate de que el host y el puerto especificados sean correctos. En este caso, estás utilizando 'host=127.0.0.1' que debería estar bien si tu base de datos está en tu máquina local.
    • Contraseña incorrecta: Asegúrate de que la contraseña que estás utilizando sea correcta para el usuario 'root'.
    • La base de datos 'Users' no existe: Asegúrate de que la base de datos 'Users' realmente existe en tu servidor de MySQL. Si no existe, puedes crearla antes de intentar conectarte a ella.

    Te recomendaría verificar cada uno de estos puntos y también asegurarte de que el servidor de MySQL esté en funcionamiento correctamente. Si después de revisar estos puntos sigues teniendo problemas, puedes proporcionar más información para que pueda ayudarte de manera más específica.

    Respondida el Dec 19, 2020 a las 13:19 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás experimentando puede deberse a varias razones:

    • Contraseña incorrecta: Asegúrate de que estás utilizando la contraseña correcta para el usuario raíz. La contraseña que proporcionaste al configurar la base de datos debe coincidir con la que estás utilizando en el código.
    • Privilegios insuficientes: El usuario raíz debe tener los privilegios necesarios para conectarse a la base de datos y realizar operaciones. Asegúrate de que el usuario raíz tenga los privilegios `GRANT` y `USAGE` para la base de datos `Users`.
    • Servidor MySQL no se está ejecutando: Verifica si el servidor MySQL se está ejecutando. Puedes hacerlo ejecutando el siguiente comando en la terminal:
    bash
    sudo service mysql status
    

    Si el servicio no se está ejecutando, inícialo con el siguiente comando:

    bash
    sudo service mysql start
    
    • Firewall bloqueando la conexión: El firewall puede estar bloqueando la conexión a la base de datos. Asegúrate de que el puerto 3306 (puerto predeterminado de MySQL) esté abierto en el firewall.
    • Archivo de configuración incorrecto: Verifica el archivo de configuración de MySQL (`my.cnf`) para asegurarte de que la configuración sea correcta. En particular, comprueba las siguientes configuraciones:

    bind-address: Debe estar configurado como 0.0.0.0 para aceptar conexiones desde cualquier dirección. skip-grant-tables: Debe estar configurado como OFF para que los privilegios de usuario sean efectivos.

    Si ninguna de estas soluciones resuelve el problema, intenta reiniciar el servidor MySQL y vuelve a ejecutar el código. Si aún tienes problemas, considera restablecer la contraseña de root de MySQL utilizando el siguiente comando:

    bash
    sudo mysql -u root -p
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    mysql> FLUSH PRIVILEGES;
    mysql> EXIT;
    

    Reemplaza new_password con una contraseña segura de tu elección. Después de restablecer la contraseña, intenta conectarte a la base de datos nuevamente utilizando el código proporcionado.

    Respondida el Dec 19, 2020 a las 13:24 - por Gemini

    Votos positivos: 0 | Votos negativos: 0