Saltar al contenido

“Error de conexión: acceso denegado para el usuario ‘root’ @ ‘localhost’ (usando contraseña: SÍ)” desde la función php

Solución:

Lo resolví de esta manera: inicié sesión con el nombre de usuario root

mysql -u root -p -h localhost

Creé un nuevo usuario con

CREATE USER 'francesco'@'localhost' IDENTIFIED BY 'some_pass';

luego creé la base de datos

CREATE DATABASE shop;

Otorgué privilegios para un nuevo usuario para esta base de datos.

GRANT ALL PRIVILEGES ON shop.* TO 'francesco'@'localhost';

Luego cerré la sesión de root e inicié sesión como nuevo usuario

quit;
mysql -u francesco -p -h localhost

Reconstruí mi base de datos usando un script

source shop.sql;

Y eso es todo .. Ahora desde php funciona sin problemas con la llamada

 $conn = new mysqli("localhost", "francesco", "some_pass", "shop");

Gracias a todos por su tiempo 🙂

¿Hay una entrada de cuenta de usuario en la base de datos para [email protected]? En MySQL puede establecer diferentes permisos de cuenta de usuario por host. Puede haber varias cuentas diferentes con el mismo nombre combinadas con el host desde el que se están conectando. Los mas comunes son [email protected] y [email protected] Estos pueden tener diferentes contraseñas y permisos. Asegurarse [email protected] existe y tiene la configuración que espera.

Estoy dispuesto a apostar, según su explicación, a que ese es el problema. La conexión desde otra PC utiliza una cuenta diferente a la [email protected] y la línea de comando creo que se conecta usando [email protected]

Por lo que ha dicho hasta ahora, parece un problema en el que el controlador MySQL en PHP5.3 tiene problemas para conectarse a la versión anterior de MySQL 4.1. Eche un vistazo a http://www.bitshop.com/Blogs/tabid/95/EntryId/67/PHP-mysqlnd-cannot-connect-to-MySQL-4-1-using-old-authentication.aspx

Hay una pregunta similar aquí con algunas respuestas útiles, No se puede conectar a MySQL 4.1+ usando autenticación antigua

SELECT `User`, `Host`, Length(`Password`) FROM mysql.user

Esto devolverá 16 para cuentas con contraseñas antiguas y 41 para cuentas con contraseñas nuevas (y 0 para cuentas sin contraseña, es posible que también desee encargarse de ellas). Utilice las herramientas de gestión de usuarios del front-end de MySQL (si las hay) o

SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *