Avisos
Vaciar todo

No se ejecuta consulta a la base de datos en tarea cron

9 Respuestas
3 Usuarios
0 Reactions
1,866 Visitas
José Luis Suárez Jiménez
Respuestas: 120
Estimable Member
Topic starter
 

Hola.

No se si está es la categoría adecuada para el tipo de consulta que vamos a realizar. Pero ya que está relacionado con Virtuemart hemos pensado que es la más correcta.

Hemos desarrollado un script en php que permite crear un feed de datos xml para Google Merchant. Funciona bien ya que tenemos casi 3000 productos aceptados y activos por parte de Google. El problema nos surge a la hora de querer automatizar la creación del archivo xml a través de una tarea cron, para no tener que estar actualizándolo todos los días, ya que la conexión a la base de datos para extraer los datos no se realiza, lo que genera un xml vacío.

El comando para realizar la ejecución del script es correcto:
cd /home/copitecn/public_html/ && php xml-cron.php

Pero la conexión a la base de datos no se realiza.
Hemos intentado realizar la conexión a través de este código:
mysql -unombre_base_datos -pcontraseña_base_datos -hlocalhost && cd /home/copitecn/public_html/ && php xml-cron.php

Pero en el email nos muestra este mensaje de error:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

¿Que estamos haciendo mal?

URL del sitio: Contenido solo visible a usuarios registrados


 
Respondido : 24/10/2014 6:01 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

La conexión a la BD debería estar dentro del propio script y no a través de comandos

Saludos


 
Respondido : 24/10/2014 7:03 pm
José Luis Suárez Jiménez
Respuestas: 120
Estimable Member
Topic starter
 

Hola Jhon.

La conexión a la base de datos está en el script de php, pero al ejecutar la tarea cron no se realiza la conexión, con lo cual no me devuelve ningún registro. Sin embargo si ejecuto el script introduciendo directamente la dirección del archivo php en el navegador se realiza sin ningún problema.

Probé hacerlo a través de la línea de comandos como posible solución, ya que no se realizaba la conexión a la base de datos desde la tarea cron.


 
Respondido : 25/10/2014 2:42 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Cual es la url específica accesible desde el navegador del script que quieres ejecutar?

Saludos.


 
Respondido : 25/10/2014 4:05 pm
José Luis Suárez Jiménez
Respuestas: 120
Estimable Member
Topic starter
 

Esta: http://www.copitecnic.com/xml-cron.php


 
Respondido : 26/10/2014 11:24 am
Pablo Velasco
Respuestas: 20382
Illustrious Member
 

Hola,

Prueba a ejecutar el cron con el siguiente comando para ver si funciona:

php -q /home/copitecn/public_html/xml-cron.php

 
Respondido : 27/10/2014 11:51 am
José Luis Suárez Jiménez
Respuestas: 120
Estimable Member
Topic starter
 

Hola Pablo.

El archivo se ejecuta correctamente, pero sigue sin poder hacer conexión a la base de datos desde la tarea cron, pero la realiza bien si la ejecuto desde un navegador web.

¿Puede que al realizar la tarea cron la ruta a la base de datos sea distinta? Ahora mismo tengo como ruta a la base de datos "localhost".

En ese caso ¿Qué ruta tendría que poner?


 
Respondido : 28/10/2014 5:06 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Has probado colocando la IP del servidor?

Es posible que tengas que tengas alguna restricción , tendrías que consultarlo a través de tickets de soporte, indica claramente como quieres ejecutar el archivo

Saludos.


 
Respondido : 28/10/2014 6:00 pm
José Luis Suárez Jiménez
Respuestas: 120
Estimable Member
Topic starter
 

Finalmente hemos podido ejecutar el cron gracias al soporte mediante tickets. Era un fallo que teniamos en el comando cron.

Muchas gracias


 
Respondido : 20/11/2014 5:51 pm