OVH Community, your new community space.

Access denied for user 'apache'@'localhost' (using password: NO)


mrbarriga
03/05/2008, 19:20
Efectivamente lo que está sucediendo es que el script no le está pasando el nombre de usuario y pass correcto a mysql, revisa ien el script.

hombrelobo
03/05/2008, 17:53
Al final era más fácil ..... los include_once tienen que mostrar toda la ruta ...

Me explico:

Antes tenía:
Código PHP:
include_once 'inclu/conf.inc';
include_once 
'inclu/cab.inc'
Y dentro de cab.inc:

Código PHP:
include_once 'conf2.inc'
Y debería ser:
Antes tenía:
Código PHP:
include_once ('inclu/conf.inc');
include_once (
'inclu/cab.inc'); 

Cuando, dentro de cab.inc, debería tener:

Código PHP:
include_once ('inclu/conf2.inc'); 
Nada más .... funcionaba en PHP4 pero no en PHP5 ....

Gracias a todos otra vez.

hombrelobo
03/05/2008, 15:18
Mil gracias .... ya estoy en camino de resolverlo .... ... el error no me ayudaba, pero tú sí ......

Te cuento: al hacer lo que mencionas, obtengo:
Código PHP:
[ | ]Connect:Access denied for user 'apache'@'localhost' (using passwordNO
Lo que me dice que las variables no le llegan, y por alguna razón, me da ese error con Apache .....

Pero bueno ....

Lo que pasa es que mis requires tenían la forma:

Código PHP:
include_once 'inclu/conf.inc';
include_once 
'inclu/cab.inc'
Que evidentemente no funciona bien. Ahora voy a comer, pero al menos ya se cual es el error. Buscaré luego la sintaxis correcta para los includes o los require_once.

Me llevará tiempo, porque había varios encadenados .... nunca aprendí a programar de forma organizada ..... bueno, una forma de pasar la tarde del sábado.

Mil gracias otra vez. D

Salmadar
03/05/2008, 13:51
Cambia tus includes a require_once().
Activa display_errors en php.ini temporalmente si no puedes leer los errores de php en el log.

Cambia esto:

$db = mysql_connect($servidor,$user,$pass);
mysql_select_db($basedatos,$db);

A esto:

echo "[ $servidor | $user ]";
$db = mysql_connect($servidor,$user,$pass) or die("Connect:".mysql_error());
mysql_select_db($basedatos,$db) or die("Select:".mysql_error());

hombrelobo
03/05/2008, 09:23
¿ Y eso por qué no ?

Sí que están por un include .... ¿ por que no los coge ? Lo pruebo luego, gracias ...

enanote007
03/05/2008, 04:51
Probablemente tengas el mismo problema que yo, si los datos de conexion a la base de datos los tienes en un archivo a parte del que hace la consulta y lo tomas por include o require o lo que sea probablemente no te los este tomando, es decir no te este cargado el archivo de configuracion :S

hombrelobo
02/05/2008, 21:23
@Salmadar: claro, todo de acuerdo.

Este es mi script:

Código PHP:
$db mysql_connect($servidor,$user,$pass);        
mysql_select_db($basedatos,$db); 
Por supuesto, antes he definido las variables.

@MarcosBL: estoy usando Plesk 8.3. Es que con el OVH admin me volvía loco y estoy acostumbrado al Plesk .... ¿ se puede hacer con plesk ? No se si es una cuestión de PHP 4 o 5, pero el scrip funciona perfecto en un servidor que tiene PHP 4, así que es de las pocas cosas que se me ocurren ....

MarcosBL
02/05/2008, 20:17
Te lo ha dado mascado Salmadar, pero por si ayuda además:

"¿ Permite OVH seleccionar qué PHP usar en cada dominio ? ¿ Como elijo que un dominio use PHP 4 en vez de 5 ?"

Si, al menos si usas Release 2, desde webmin, módulo OVHM, al crear el dominio, te dará opción a elegir la versión de php que quieres. Si ya lo has creado y te es mucha molestia borrar y volver a crearlo, dimelo que te busco en qué fichero de conf guarda eso webmin para que puedas editarlo.

Salmadar
02/05/2008, 19:36
Vamos a ver, la conexion mysql se establece en un script php con la funcion mysql_connect(), si no se introducen los parametros de la conexion (servidor, usuario y contrasenya) se usan los valores de configuracion de php mysql.default_user, mysql.default_password y mysql.default_host, a no ser que tengas activada la opcion sql.safe_mode, en cuyo caso se usa como nombre de usuario el usuario bajo el cual corre el proceso, apache en este caso. Entonces asumiendo que tu script dependa de esos valores de configuracion lo unico que te falta es desactivar el modo seguro de sql, si tienes acceso root al servidor busca el php.ini y pon la opcion sql.safe_mode a 0 o "off". O simplemente busca la llamada a la funcion mysql_connect() en tu script y mete los parametros:
mysql_connect ("localhost", "usuario", "contrasenya");

Asumiendo que el servidor sea local claro... Esto ultimo es mas recomendable porque te funcionara aunque los valores de conexion de mysql esten sin configurar.

Perdon por la falta de acentos, estoy con un teclado americano.

hombrelobo
02/05/2008, 16:50
@djbuly ¿ cómo puedo acceder a los logs de mysql ?

@xmago: claro que no estoy intentando usar el usuario apache, sino otro distinto con su clave, que he creado via plesk. Pero el error que me da es ese. Eso es lo raro.

@MarcosBL: Claro que tiene password .... y lo que preguntaba es si OVH añade prefijos al crear una base de datos desde plsk (otros hostings lo hacen), pero la respuesta es que no, porque he creado otras bases de datos para alojar un WP y funcionan bien, sin prefijo, así que eso no es .....

Estoy pensando que el script estaba creado hace tiempo y funciona bajo PHP 4. Puede ser que ese sea el problema.

¿ Permite OVH seleccionar qué PHP usar en cada dominio ? ¿ Como elijo que un dominio use PHP 4 en vez de 5 ?

MarcosBL
01/05/2008, 02:14
Y además sin password... y eso de "Que la base de datos que he creado, que es exactamente igual que la del otro servidor, se cree con un prefijo delante que ignoro"

Obviamente, si lo ignoras, no funcionará ya directamente por eso, el prefijo es parte del nombre de la BD, imho.

xmago
01/05/2008, 01:24
estas intentando abrir la base de datos con el usuario 'apache', ¿es este el que has creado desde plesk?

¿por que no utilizas otro nombre de usuario y le pones clave?

djbuly
30/04/2008, 23:15
A lo mejor tienes algo más en los logs de la mysql...

hombrelobo
30/04/2008, 23:05
Ya, y a mi .....

Los usuarios los he creado desde plesk para esa base de datos.... creo que están bien .... de hecho, todo es igual que en el otro plesk .....

djbuly
30/04/2008, 23:03
Lo de que no puedas acceder como root es raro... ahí me has roto

Revisa que tengas bien los parámetros en el fichero de configuración del script y que el usuario que has creado tenga permisos sobre la base de datos que quieres usar.

Saludos

hombrelobo
30/04/2008, 22:46
No, claro que no, ese supongo que es el usuario del webserver, pero yo no lo he creado.

Solo he creado un usuario, que es el que he incluido en el fichero de configuración del script.

También he probado a acceder la base de datos con el usuario root, y no funcionaba. No es la situación ideal, claro, pero lo he hecho solo para probar, y nada.

djbuly
30/04/2008, 22:43
¿Tienes creado el usuario apache?

hombrelobo
30/04/2008, 22:09
Tengo problemas con un script en PHP que llama a una base de datos mysql

El script funciona perfectamente en otro servidor dedicado (de otro proveedor), con lo que supongo que el error que me da en el servidor OVH, que es:

Código PHP:
Access denied for user 'apache'@'localhost' (using passwordNO
se puede deber a:

- Que la base de datos que he creado, que es exactamente igual que la del otro servidor, se cree con un prefijo delante que ignoro.
- Que en vez de localhost tenga que usar otro nombre de servidor.

¿ Alguna sugerencia ?

Gracias