Resulta que algunas veces es necesario acceder desde C/C++ a MySQL, razones hay muchas…. el asunto es como hacerlo.
Antes de hacer cualquier cosa debemos instalar las librerías de desarrollo de MySQL:
sudo apt-get install libmysqlclient-dev
Todos los archivos que necesitaremos van a estar ubicados en /usr/include/mysql y /usr/lib/mysql , los parámetros para compilar un archivo simple es como sigue:
gcc archivo.cpp \ -o archivo \ -I/usr/include/mysql -L/usr/lib/mysql \ -lmysqlclient -lstdc++ -lz
Una breve descripción de los parámetros:
-o
(output) indica el nombre que va a tener el archivo de resultado-I
le dice al compilador que incluya una ruta adicional para los archivos de inclusión-L
le dice al enlazador que incluya una ruta adicional para los archivos de librería dependientes-l
(ele minuscula) le dice al enlazador que incluya la librería especificada\
es el caracter que usamos en la linea de comando para ejecutar varias lineas como una sola expresión.
Escribí para ustedes un código de ejemplo, no es gran cosa pero les va a dar luces para sus proyectos:
//conexion.cpp
#include
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
MYSQL mysql;
mysql_init(&mysql);
if (!mysql_real_connect(&mysql
,"localhost"
,"root"
,""
,"ciudades",0,NULL,0))
{
cerr<<"Horror ! : "
<
El resultado de la ejecución es:
ivancp@ubuntu$ ./conexion
01 AMAZONAS
02 ANCASH
03 APURIMAC
04 AREQUIPA
05 AYACUCHO
06 CAJAMARCA
07 CALLAO
08 CUSCO
09 HUANCAVELICA
10 HUANUCO
11 ICA
12 JUNIN
13 LA LIBERTAD
14 LAMBAYEQUE
15 LIMA
16 LORETO
17 MADRE DE DIOS
18 MOQUEGUA
19 PASCO
20 PIURA
21 PUNO
22 SAN MARTIN
23 TACNA
24 TUMBES
25 UCAYALI
Espero les sirva mucho!
Interesante tip, aunke hace buen tiempo que deje de programar aplicaciones de pc, ahora estoy mas embebido en aplicaciones web(php), pero tmb soy muy amante de tuxito, y por lo mismo, voy hacer la prueba.
PD: de casualidad encontre tu blog (http://www.populicias.com/verNoticia.php?id=767&nv=20), estoy suscrito a ww.populicias.com y ahi estabas, jajaja, jajaj, y el copyright. De todos modos te agregue a mi lector web(www.bloglines.com), pues tienes algunos post muy inte interesantes, solo saludos. bye
hola
Deseaba hacer una coneccion pero usando c++ builder je luego descubri que no se podia por el tipo de formato como la hago sin usar odc o como incluyo la libreria mysql
muy bueno!, es justo lo que necesitaba, pensaba que usar una base mysql en c seria un dolor de cabeza, pero es mas facil de lo que pensaba,mil gracias!!
Muy bueno, sólo que aún con algunos errores
buena, con esto me inicié en este campo, claro corrigiendo los errores necesarios e instalando libmyqsl++.
Muy bien! Justo lo que necesitaba… solamente tenía informacion sobre un programa bajo c pero no lo conseguia compilar en c++ utilizando mis clases. Gracias!
Exelente amigo
De casualidad puedes publicar el codigo para
acer la inserccion de datos en C/C++
nos vemos en el futuro…!
#include
#include
std::string query(«SELECT * FROM maestro_departamentos»);
mysql_real_query(&mysql, query.c_str(), query.size());
Es la adaptacion para usar las librerias de C++.
PD: si no se usa ‘using namespace std;’ al principio, hay que especificarlo antes de usar std::cout y std::cerr.
Muchas gracias por el post, es muy claro y util. Saludos!
HOLA amigo quisiera saber donde consigues los manuales donde aprendes eso porfavor gracias.
Estoy buscando informacion acerca de como hacer la conexion y veo que es muy sencillo, pero podrias hacerlo mas paso a paso? por ejemplo desde crear los ficheros hasta la compilacion. No veo como hiciste la base de datos (aunque es sencilla, no se como la hiciste), tampoco como lo guardaste ni donde y documentar un poco mas el archivo .c Esta muy bien, solo que quienes no tenemos idea de como hacer la aplicacion y queremos saberlo nos volvemos un 8 Gracias!
muy bueno pero tengo una pregunta ammmm, como haria con el comando para que me funcione en centos ya que si no me equiboco ese comando apt que estas usando para las librerias esta para ubunto me gustaria saber como podria poner el comando para descargar en centos gracias
El comando para Centos me parece que es:
yum install mysql-devel
por favor intenta y nos cuentas como te fue.
gracias gracias si funciona ya comenzo a descargar las librerias con ese comando
mas bien una ultima pregunta ammm para activar las librerias ahora entonces como seria? o.o y por ejemplo si desearia conectar la base de datos remotamente de otro linux tendria que descargar otra libreria o con esa funciona?, porque para que funcione la conexion remota de la base de datos tendria que cambiar la parte del codigo que dice localhost por el ip o se le aumenta algo mas?.
te doy muchas gracias de antemano.
Si!, solo tienes que poner el numero de IP del host remoto y tambien el usuario y password… pero el host remoto debe estar configurado para que acepte conexiones temotas via tcp
Pingback: Probando UDFs para MySQL: Title Case | Fatal exception
Esta muy practico, necesitaba algo como esto para una practica de base de datos!!
es necesario poner el puerto en localhost cuando se trate de un servidor remoto?
En cualquier caso es recomendable poner el puerto.