servidor - "Falló la conexión: Acceso denegado para el usuario ''root'' @ ''localhost''(usando la contraseña: YES)" de la función php
acceso denegado para el usuario ''root'' @ ''localhost''(using password yes) (9)
Aquí tal vez?
Creo que el código debería ser:
$connect = new mysqli("host", "root", "", "dbname");
porque root no tiene una contraseña. el (using password: YES)
dice "estás usando una contraseña con este usuario"
Escribí alguna función utilizada por una página web php, para interactuar con una base de datos mysql. Cuando los pruebo en mi servidor obtengo este error:
"Connect failed: Access denied for user ''root''@''localhost'' (using password: YES)"
Puedo usarlos en mi pc (usando XAMPP) y puedo navegar por las tablas de la base de datos usando la línea de comando en el servidor. Sin embargo, la página web no se puede conectar. Revisé la contraseña pero sin resultados. Es correcto (de lo contrario, no podría iniciar sesión en mysql desde la línea de comandos).
La llamada de la función es la siguiente:
$conn = new mysqli("localhost", "root", "password", "shop");
¿Tengo que configurar algo en mi servidor? Gracias
Edición: PHP versión 5.3.3-7 + squeeze1 versión de mysql: 5.1.49-3 ambos en debian
¿Hay una entrada de cuenta de usuario en la base de datos para root @ localhost? En MySQL puede establecer diferentes permisos de cuenta de usuario por host. Puede haber varias cuentas diferentes con el mismo nombre combinado con el host desde el que se conectan. Los más comunes son [email protected] y root @ localhost. Estos pueden tener diferentes contraseñas y permisos. Asegúrese de que exista root @ localhost y que tenga la configuración que espera.
Estoy dispuesto a apostar, basado en su explicación, que este es el problema. Conectarse desde otra PC utiliza una cuenta diferente de root @ localhost y la línea de comando creo que se conecta usando [email protected].
Edite sus privilegios en PHPmyAdmin (WAMP). Tenga en cuenta que su contraseña y nombre de usuario no se han creado. Así que créelo o edítelo, para que funcione con su conexión sql en su php. Espero que funcione
Intente inicializar sus variables y utilícelas en su objeto de conexión:
$username ="root";
$password = "password";
$host = "localhost";
$table = "shop";
$conn = new mysqli("$host", "$username", "$password", "$table");
Lo más probable es que no identifique a su usuario correctamente. root @ localhost. Seleccione la versión Mysql que está usando su MAMP.
/Applications/MAMP/Library/bin/mysqldump -uroot -p db_name > test_db_dump.sql
De hecho, escribí un alias en mi computadora, así que no tengo que recordar cómo llegar al directorio bin.
alias mysqldumpMAMP=''/Applications/MAMP/Library/bin/mysqldump''
Lo cual me permite ejecutar esto:
mysqldumpMAMP -uroot -p db_name > test_db_dump.sql
Puede guardar un alias en su perfil bash ~/.bash_profile
o ~/.bash_rc
Lo resolví de esta manera: inicié sesión con mi nombre de usuario raíz
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 el nuevo usuario para esta base de datos
GRANT ALL PRIVILEGES ON shop.* TO ''francesco''@''localhost'';
Luego cerré sesión y entré al nuevo usuario
quit;
mysql -u francesco -p -h localhost
Reconstruí mi base de datos usando una secuencia de comandos
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 :)
Por lo que has dicho hasta ahora, parece un problema que el controlador MySQL en PHP5.3 tenga problemas para conectarse a la versión anterior de MySQL 4.1. Eche un vistazo en bitshop.com/Blogs/tabid/95/EntryId/67/…
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 las cuentas con contraseñas antiguas y 41 para las cuentas con contraseñas nuevas (y 0 para las cuentas sin contraseña en absoluto, es posible que también quiera ocuparse de las mismas). Utilice las herramientas de administración de usuarios de la interfaz de MySQL (si hay alguna) o
SET PASSWORD FOR ''User''@''Host''=PASSWORD(''yourpassword'');
FLUSH Privileges
También tuve este problema. Pero esto fue por otra razón. Mi contraseña comenzó con el carácter $
... por ejemplo $MyPassword
Lo cambié a #MyPassword
y el problema está resuelto.
PROPINA:
comente el archivo pid y socket, si no puede conectarse al servidor ... mysql podría estar conectado con un archivo pid y / o socket incorrecto, de modo que cuando intente conectarse al servidor a través de la línea de comando, "busque" el pid incorrecto / archivo de socket ...
### comment out pid and socket file, if you can''t connect to server..
#pid-file=/var/run/mysql/mysqld.pid
#socket=/var/lib/mysql/mysql.sock