Usando Perl para acceder a su Base MySQL

Este documento contiene información para conectar un script Perl con una base de datos MySQL del hosting usando el módulo DBI: qué datos necesitás, dónde ubicar el script y cómo resolver los errores más comunes.

Los scripts Perl de tu sitio pueden leer y guardar información en una base de datos MySQL del hosting con el módulo DBI. Perl y DBI ya están disponibles en la cuenta, así que no hace falta instalar nada.

Datos que necesitás

Dónde encontrarlos: ingresá a cPanel desde el portal de clientes → Iniciar sesión en cPanel, o en https://tudominio.com/cpanel. Después abrí Bases de datos → Bases de datos MySQL.

  • Nombre de la base: el nombre completo, con el prefijo de la cuenta. Por ejemplo, cuenta_tienda.
  • Usuario de MySQL: también con el prefijo. Por ejemplo, cuenta_app. Tiene que estar añadido a la base con los privilegios necesarios.
  • Clave del usuario de MySQL: la que definiste al crearlo. No es la clave de cPanel.
  • Servidor: localhost, porque el script se ejecuta en el mismo hosting. El acceso remoto solo hace falta para programas que se conectan desde fuera del hosting.

Cómo se arma el script

Todo script que usa DBI sigue los mismos cuatro pasos:

  1. Conectar con la base usando el controlador mysql, el nombre de la base, localhost, el usuario y su clave.
  2. Preparar la consulta, usando marcadores de posición (?) para los valores en lugar de escribirlos dentro del texto de la consulta. Así se evita la inyección SQL.
  3. Ejecutar la consulta pasando los valores y, si devuelve resultados, recorrerlos fila por fila.
  4. Cerrar la consulta y la conexión.

Los ejemplos completos de código están en la documentación oficial de DBI y en la del controlador DBD::mysql.

Dónde ubicar el script

  • Si se ejecuta desde el navegador, guardalo en la carpeta cgi-bin, con permisos 755, y con saltos de línea de Linux.
  • Si lo ejecuta una tarea programada, podés guardarlo fuera de public_html.
  • Un script que responde al navegador tiene que enviar primero el encabezado que indica el tipo de contenido, antes de mostrar cualquier texto.

Seguridad: el script guarda la clave de la base. Nunca lo dejes en una carpeta pública con otra extensión ni hagas copias como .bak o .txt, porque se podrían descargar con la clave visible. Usá un usuario de MySQL con los permisos mínimos que necesite el script, y hacé una copia de seguridad de la base antes de probar cambios que modifiquen o borren datos.

Problemas frecuentes

  • No se puede conectar: revisá el nombre completo de la base y del usuario, la clave de MySQL y que el usuario esté añadido a esa base. El servidor tiene que ser localhost.
  • Error "install_driver(mysql) failed": el controlador DBD::mysql no está disponible en la cuenta. Consultá al soporte.
  • La tabla no existe: el nombre usado en el script no coincide con el de la base, incluidas mayúsculas y minúsculas.
  • El navegador descarga el archivo o muestra el código: el script no está en cgi-bin o no tiene permiso de ejecución.
  • Error 500: revisá los permisos (755), los saltos de línea de Linux y que el encabezado de contenido se envíe primero.

Si necesitás ayuda, abrí un ticket desde el portal de clientes o consultá por el chat online del sitio.

  • perl para acceder a una base de datos mysql
  • 41 Los Usuarios han Encontrado Esto Útil
¿Fue útil la respuesta?

Artículos relacionados

Cómo acceder de forma remota (hogar o trabajo) a base de datos MySQL

Este artículo explica cómo habilitar el acceso remoto a MySQL para conectarte desde tu equipo, u...

Bases de datos MysSql

Una base de datos MySQL guarda la información de aplicaciones como WordPress, tiendas online o...

Comandos basicos en MySQL

Este artículo reúne comandos básicos de MySQL para ejecutar en la pestaña SQL de phpMyAdmin....

Cómo crear una base de datos MySql

Este artículo explica cómo crear una base de datos MySQL en cPanel, cómo importar un archivo .sql...

Cómo administrar bases de datos MySQL

Este artículo explica cómo administrar una base de datos MySQL con phpMyAdmin desde cPanel:...