Lun Abr 21, 2008 10:33 am
|
 |
majitop1986
Perlero Nuevo

|
Registrado: 02 Abr 2008
Mensajes: 58
|
|
| Algún módulo que me conecte a SQLyog |
|
|
¡Buenos días! Les tengo una pregunta... ¿existe algún módulo que me ayude a conectar mi script en Perl a mi base de datos, en este caso SQLyog...? ¡Que me ayude a utilizar los datos de una tabla de mi base en mi script en Perl!...
¿Alguna idea? |
|
|
|
Lun Abr 21, 2008 11:58 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4086
Ubicación: Valladolid, España
|
|
|
|
|
| Debes usar el módulo de DBD::mysql. SQLyog es un cliente gráfico de MySQL. |
|
Lun Abr 21, 2008 12:35 pm
|
 |
majitop1986
Perlero Nuevo

|
Registrado: 02 Abr 2008
Mensajes: 58
|
|
|
|
|
| ¡Muchas gracias por responder, explorer! ¿Ese mismo módulo me serviría para utilizar los datos de una tabla específica en mi script? |
|
Lun Abr 21, 2008 12:42 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4086
Ubicación: Valladolid, España
|
|
|
|
|
| Sí. |
|
Lun Abr 21, 2008 1:08 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|

Lun Abr 21, 2008 1:37 pm
|
 |
majitop1986
Perlero Nuevo

|
Registrado: 02 Abr 2008
Mensajes: 58
|
|
|
|
|
| kidd escribió: | | http://perlenespanol.baboonsoftware.com/tutoriales/bases_de_datos/como_conectarte_a_tu_database.html |
¡Hola! Ojalá y me puedas ayudar... estaba probando este script.
| Perl: | #!/usr/bin/perl
use strict;
use DBI ();
#$data_source="localhost";
#$username="root";
#$password="rootwdp";
my $dbh = DBI-> connect("DBI:mysql:iac_database",
"root", "rootwdp",
{'RaiseError'=> 1});
my $sth = $dbh-> prepare("SELECT * FROM cst_usuario");
$sth-> execute();
while (my $ref = $sth-> fetchrow_hashref())
{
print "Found a row: id = $ref->{'us_idUsuario'}, name = $ref->{'us_nombre'}, last name = $ref->{'us_apellido'}\n";
}
$sth-> finish();
$dbh-> disconnect(); |
Para conectarme a mi base de datos pero me sale el siguiente error.
| Código: |
| DBI connect('iac_database','root',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at base3.pl line 9 |
Y primero pensé que podría no estar instalado el módulo, pero ya revisé todo... ¡y si está instalado...! ¿que crees que podría ser?
mmmm ¡Alguna ayuda por favor! |
|


Lun Abr 21, 2008 2:20 pm
|
 |
majitop1986
Perlero Nuevo

|
Registrado: 02 Abr 2008
Mensajes: 58
|
|
|
|
|
kidd, ¡gracias por contestar! corregí la línea que me dijiste... y el script quedo así
| Perl: | #!/usr/bin/perl
use strict;
use DBI ();
#$data_source="localhost";
#$username="root";
#$password="rootwdp";
my $dbh = DBI-> connect("DBI:mysql:host=localhost;database=iac_database",
"root", "rootwdp",
{'RaiseError'=> 1});
my $sth = $dbh-> prepare("SELECT * FROM cst_usuario");
$sth-> execute();
while (my $ref = $sth-> fetchrow_hashref())
{
print "Found a row: id = $ref->{'us_idUsuario'}, name = $ref->{'us_nombre'}, last name = $ref->{'us_apellido'}\n";
}
$sth-> finish();
$dbh-> disconnect(); |
¡Y me sale el mismo error!
| Código: |
| DBI connect('host=localhost;database=iac_database','root',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at base3.pl line 9 |
¿Qué crees que pueda ser?
Estuve leyendo el tutorial que me recomendaste... pero me sale errores también. Mira, éste sería el código de ConectarDB.pm
| Perl: | #!/usr/bin/perl -w
package ConectarDB;
use strict;
use DBI;
my $db_user = "root";
my $db_pass = "....";
my $host_name = "localhost";
my $db_pass = "......";
my $q_string = "DBI:mysql:host=$host_name;database=$db_name";
sub connect{
return (DBI-> connect ($q_string, $db_user, $db_pass,
{PrintError => 0, RaiseError => 1}));
}
1; |
y aun así me sale error cuando lo llamo de otro script... me sale este error
| Código: |
"my" variable $db_pass masks earlier declaration in same scope at ConectarDB.pm line 11.
Global symbol "$db_name" requires explicit package name at ConectarDB.pm line 13.
Compilation failed in require at base4.pl line 3.
BEGIN failed--compilation aborted at base4.pl line 3. |
Te agradecería millón toda la ayuda posible que me puedas brindar.
Ultima edición por majitop1986 el Jue Jun 05, 2008 11:02 am, editado 1 vez |
|

Lun Abr 21, 2008 3:28 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
Ya el código final que tienes es correcto, ahora el problema no es con Perl sino de MySQL.
Lo primero que tienes que hacer es asegurarte que el proceso de MySQL esté ejecutando, la mayor parte de las veces es por eso que sale el error.
Si tienes Windows, entonces intenta reiniciar y probar de nuevo.
Saludos |
|
Lun Abr 21, 2008 3:51 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4086
Ubicación: Valladolid, España
|
|
|
|
|
| Para mi que el servidor de mysql no está arrancado... |
|
Lun Abr 21, 2008 4:07 pm
|
 |
majitop1986
Perlero Nuevo

|
Registrado: 02 Abr 2008
Mensajes: 58
|
|
|
|
|
| kidd escribió: | Ya el código final que tienes es correcto, ahora el problema no es con Perl sino de MySQL.
Lo primero que tienes que hacer es asegurarte que el proceso de MySQL esté ejecutando, la mayor parte de las veces es por eso que sale el error.
Si tienes Windows, entonces intenta reiniciar y probar de nuevo.
Saludos |
¡Te cuento que ya comprobé eso! y todo esta funcionando.. pero me sigue botando ese error... por lo que vi el mysql.socket no está en esa dirección que apunta el error.. y está en esta dirección: /opt/lampp/var/mysql; y no sé si hay que redireccionar el documento o qué. |
|
Lun Abr 21, 2008 5:07 pm
|
 |
majitop1986
Perlero Nuevo

|
Registrado: 02 Abr 2008
Mensajes: 58
|
|
|
|
|
| Tenían razón: ¡no está arrancado el mysql! Mi pregunta es ¿cómo hago para arrancarlo? Soy nueva en esto, plis , ¡ayuda! |
|
Lun Abr 21, 2008 5:55 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
| ¿Qué sistema operativo tienes? |
|
Mar Abr 22, 2008 8:08 am
|
 |
majitop1986
Perlero Nuevo

|
Registrado: 02 Abr 2008
Mensajes: 58
|
|
|
|
|
| kidd escribió: | | ¿Qué sistema operativo tienes? |
¡Tengo el Linux CentOS!... pero no corre mysql, ya probé parando el Apache y volviendo a correr y nada... ¿Qué puedo hacer? |
|
Mar Abr 22, 2008 8:57 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4086
Ubicación: Valladolid, España
|
|
|
|
|
El Apache no tiene nada que ver con el MySQL.
Prueba a arrancar el mysql con el comando
/etc/init.d/mysqld restart
Si no es ese, quizás sea
/etc/init.d/mysql restart
Si dice que ese comando no existe, es que MySQL no está instalado. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|