Hola, tengo que conectar c a mysql (mysql-front) me recomiendan alguna libreria? o tutorial?
Gracias!!
| |||
yo te recomiendo mucho http://c.conclase.net/
__________________ -> La duda adecuada es un buen comienzo <- |
| |||
Estuve viendo esa pagina y es muy util, hice el siguiente codigo: #include <stdio.h> #include <mysql/mysql.h> int main (int argc, char *argv[]) { dbase=mysql_init(NULL); dbase->reconnect=1; char *server="192.168.0.240"; char *user="root"; char *password=""; char *database="sermax"; /*printf("Como va?\n");*/ // Esta es la variable para las conexiones MYSQL *mysql; int result = 0; printf("Como va?\n"); // esta funcion debe ejecutarse antes de la conexion /*mysql_init(*mysql);*/ MYSQL *mysql_init(MYSQL *mysql); printf("Vamos a ver si nos conectamos a %s",argv[1]); // usamos mysql_real_connect (mysql_connect esta en desuso) // Esta es la definicion de la funcion: //MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, //unsigned int port, const char *unix_socket, unsigned long client_flag) // Los flags de cliente pueden verse en la documentacion, para este ejemplo basta con 0 /*if (!mysql_real_connect(mysql, "localhost", "root", "", "sermax", 3306, "/var/lib/mysql/mysql.sock", 0) ) {*/ if (!mysql_real_connect(dbase, server, user, password, database, 0, NULL, 0) ) { /* printf("Mal rollete: %s",mysql_error(&mysql));*/ printf("\n\n Recuerda el uso es: %s host db user password\n\n",argv[0]); return(-1); } else { printf("OK conexion establecida!!"); } printf("Como fue?\n"); } Compilo de la siguiente manera: gcc -g -o Conectar -I'/usr/include/mysql' -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm Conectar.c Y me tira el siguiente error: Conectar.c: In function `main': Conectar.c:18: error: `dbase' undeclared (first use in this function) Conectar.c:18: error: (Each undeclared identifier is reported only once Conectar.c:18: error: for each function it appears in.) Si pruebo ejecutarlo me dice SEGMENTATION FAULT Me orientas un poco? la linea 18 es :dbase=mysql_init(NULL); Gracias! |
| |||
Debes declarar dbase de esta manera: MYSQL* dbase; dbase = mysql_init(NULL); Otro ejemplo: www . latindevelopers.com/ivancp/2006/02/mysql-desde-cpp/
__________________ Recursos Visual C++ |
| |||
Hola! agregue lo que me pasaste, me quedo asi: #include <stdio.h> #include <mysql/mysql.h> int main (int argc, char *argv[]) { MYSQL *dbase; MYSQL *mysql; int result = 0; mysql_init(mysql); dbase=mysql_init(NULL); dbase->reconnect=1; char *server="192.168.0.240"; char *user="root"; char *password=""; char *database="sermax"; printf("Como va?\n"); printf("Vamos a ver si nos conectamos a %s",argv[1]); if (!mysql_real_connect(dbase, server, user, password, database, 0, NULL, 0) ) { printf("\n\n Recuerda el uso es: %s host db user password\n\n",argv[0]); return(-1); } else { printf("OK conexion establecida!!"); } printf("Como fue?\n"); } Compilo asi: gcc -o Conectar-I'/usr/include/mysql' -L'/usr/lib/mysql' \ -lmysqlclient -lz -lcrypt -lnsl -lm Conectar.c Y me tira el siguiente error: /tmp/ccmEkw29.o(.text+0x2a): In function `main': : undefined reference to `mysql_init' /tmp/ccmEkw29.o(.text+0x37): In function `main': : undefined reference to `mysql_init' /tmp/ccmEkw29.o(.text+0xa5): In function `main': : undefined reference to `mysql_real_connect' collect2: ld returned 1 exit status Lei el ejemplo que me pasaste pero es para C++, yo estoy usando C. Gracias por tu colaboracion, espero mas ayuda! Graciass!! |
| |||
Cambiale #include <mysql/mysql.h> por #include <mysql.h>
__________________ Recursos Visual C++ |
| |||
Me sigue tirando lo mismo, /tmp/ccgMVt3U.o(.text+0x2a): In function `main': : undefined reference to `mysql_init' /tmp/ccgMVt3U.o(.text+0x37): In function `main': : undefined reference to `mysql_init' /tmp/ccgMVt3U.o(.text+0xa5): In function `main': : undefined reference to `mysql_real_connect' collect2: ld returned 1 exit status Puedo tener un error de compilacion? Yo uso: gcc -o mysql_basico -I'/usr/include/mysql' -L'/usr/lib/mysql' \ -lmysqlclient -lz -lcrypt -lnsl -lm mysql_basico.c Si le comento la linea que dice mysql_init(mysql); me tira un error de mysql_init menos. Gracias! sigo por aca |
| |||
verifica si tienes los archivos /usr/lib/mysql/libmysqlclient.*, por que me parece que al momento de enlazar no los encuentra
__________________ Recursos Visual C++ |
| |||
ivancp! Te cuento, entre en el directorio usr, luego en el lib pero pongo cd /mysql y ese directorio no existe, pido un dir y tengo esto: cpp libdl-2.3.4.so libnss_nisplus-2.3.4.so evms libdl.so.2 libnss_nisplus.so.2 firmware libe2p.so.2 libnss_nis.so.1 i686 libe2p.so.2.3 libnss_nis.so.2 iptables libext2fs.so.2 libnss_winbind.so kbd libext2fs.so.2.4 libnss_winbind.so.2 ld-2.3.4.so libgcc_s-3.4.5-20051201.so.1 libnss_wins.so ld-linux.so.2 libgcc_s.so.1 libnss_wins.so.2 libacl.so.1 libiw.so.27 libpamc.so.0 libacl.so.1.1.0 libkeyutils-1.0.2.so libpamc.so.0.77 libanl-2.3.4.so libkeyutils.so.1 libpam_misc.so.0 libanl.so.1 libm-2.3.4.so libpam_misc.so.0.77 libasound.so.2 libm.so.6 libpam.so.0 libasound.so.2.0.0 libNoVersion-2.3.4.so libpam.so.0.77 libattr.so.1 libNoVersion.so.1 libpcre.so.0 libattr.so.1.1.0 libnsl-2.3.4.so libpcre.so.0.0.1 libaudit.so.0 libnsl.so.1 libproc-3.2.3.so libaudit.so.0.0.0 libnss1_compat-2.3.4.so libpthread-0.10.so libblkid.so.1 libnss1_compat.so.1 libpthread.so.0 libblkid.so.1.0 libnss1_dns-2.3.4.so libresolv-2.3.4.so libBrokenLocale-2.3.4.so libnss1_dns.so.1 libresolv.so.2 libBrokenLocale.so.1 libnss1_files-2.3.4.so librt-2.3.4.so libc-2.3.4.so libnss1_files.so.1 librt.so.1 libcap.so.1 libnss1_nis-2.3.4.so libSegFault.so libcap.so.1.10 libnss1_nis.so.1 libselinux.so.1 libcidn-2.3.4.so libnss_compat-2.3.4.so libsepol.so.1 libcidn.so.1 libnss_compat.so.1 libssl.so.0.9.7a libcom_err.so.2 libnss_compat.so.2 libssl.so.4 libcom_err.so.2.1 libnss_db.so.2 libss.so.2 libcrypt-2.3.4.so libnss_db.so.2.0.0 libss.so.2.0 libcrypto.so.0.9.7a libnss_dns-2.3.4.so libtermcap.so.2 libcrypto.so.4 libnss_dns.so.1 libtermcap.so.2.0.8 libcrypt.so.1 libnss_dns.so.2 libthread_db-1.0.so libc.so.6 libnss_files-2.3.4.so libthread_db.so.1 libdb-4.2.so libnss_files.so.1 libutil-2.3.4.so libdevmapper.a libnss_files.so.2 libutil.so.1 libdevmapper.a.1.02 libnss_hesiod-2.3.4.so libuuid.so.1 libdevmapper.so libnss_hesiod.so.2 libuuid.so.1.2 libdevmapper.so.1.00 libnss_ldap-2.3.4.so modules libdevmapper.so.1.01 libnss_ldap.so.2 security libdevmapper.so.1.02 libnss_nis-2.3.4.so tls Me esta faltando el directorio mysql? como hago? Gracias! saludos, |
| |||
eso quiere decir que NO tienes instalado el paquete MySQL-devel en tu distribucion. Te sugiero que descargues un rpm desde dev.mysql.com comptible con tu distribucion de linux, luego compilarás sin problemas.
__________________ Recursos Visual C++ |
| |||
probe poniendo cd /usr/lib/mysql y luego haciendo un dir y me sale [root@desalinux ~]# cd /usr/lib/mysql [root@desalinux mysql]# dir libdbug.a libmysqlclient.a libmysqlclient.so libnisam.a libheap.a libmysqlclient_r.a libmysqlclient.so.14 libvio.a probando de a un cd no entraba...pero al poner todo el directorio junto si entro... La verdad ya no se que puede ser...se te ocurre otra cosa? |
| |||
Pude compilar!!! pero...Je Holaaaa!! finalmente pude compilar...ahora yo ejecuto pero no me puedo conectar...debo tener algo mal en el codigo... Puedo estar ejecutando mal el real_connect? MYSQL *dbase; MYSQL *mysql; int result = 0; dbase=mysql_init(mysql); dbase->reconnect=1; char *server="192.168.0.240"; char *user="root"; char *password="pp"; char *database="sermax"; .... if (!mysql_real_connect(dbase, server, user, password, database, 3306, NULL, 0) ) { Espero no molestarte mas!! un beso! |