Avisos
Vaciar todo

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

 
José Luis Suárez Jiménez
 José Luis Suárez Jiménez
Estimable Member

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

Citar
Respondido : 24/10/2014 7:01 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

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

Saludos

ResponderCitar
Respondido : 24/10/2014 8:03 pm

Cursos Gratuitos WordPress

José Luis Suárez Jiménez
 José Luis Suárez Jiménez
Estimable Member

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.

ResponderCitar
Respondido : 25/10/2014 3:42 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

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

Saludos.

ResponderCitar
Respondido : 25/10/2014 5:05 pm

José Luis Suárez Jiménez
 José Luis Suárez Jiménez
Estimable Member

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

ResponderCitar
Respondido : 26/10/2014 11:24 am
Pablo Velasco
 Pablo Velasco
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
ResponderCitar
Respondido : 27/10/2014 11:51 am

wpdoctor-revisa-la-salud-de-tu-wordpress

José Luis Suárez Jiménez
 José Luis Suárez Jiménez
Estimable Member

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?

ResponderCitar
Respondido : 28/10/2014 5:06 pm
Jhon
 Jhon
Soporte CMS Webempresa 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.

ResponderCitar
Respondido : 28/10/2014 6:00 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

José Luis Suárez Jiménez
 José Luis Suárez Jiménez
Estimable Member

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

Muchas gracias

ResponderCitar
Respondido : 20/11/2014 5:51 pm