May 102016
 
Artículo MySQL

La distribución estándar de MySQL incluye las librerías necesarias para conectarse a la base de datos desde un cliente escrito en lenguaje C, con la misma facilidad que desde un script Perl o PHP.

Previamente, para desarrollar un programa en C, deberemos haber instalado el entorno de desarrollo habitual: compilador gcc, utilidad make, etc…

Adicionalmente, deberemos instalar el paquete de desarrollo de cliente de MySQL, que incluye las librerías y ficheros header (*.h) necesarios:

# apt-get install libmysqlclient-dev

A continuación, escribimos el programa de ejemplo “conexion_mysql.c”, con el siguiente contenido (sustituyendo el literal “PASSWORD” por la contraseña del usuario root):

/* Sencillo programa C que establece una conexión a un servidor de base de datos MySQL */
#include <stdlib.h>
#include <stdio.h>
#include <mysql.h>
main() {
 MYSQL *conn;
 MYSQL_RES *res;
 MYSQL_ROW row;
 char *server = "localhost";
 char *user = "root";
 char *password = "PASSWORD"; /* Poner la contraseña */
 char *database = "mysql";
 conn = mysql_init(NULL);
 /* Conectarse a la base de datos */
 if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {
     fprintf(stderr, "%s\n", mysql_error(conn));
     exit(1);
 }
 /* enviar la consulta SQL */
 if (mysql_query(conn, "show tables")) {
     fprintf(stderr, "%s\n", mysql_error(conn));
     exit(1);
 }
 res = mysql_use_result(conn);
 /* imprimir los nombres de las tablas */
 printf("Tablas en la base de datos 'mysql':\n");
 while ((row = mysql_fetch_row(res)) != NULL) printf("%s \n", row[0]);
 /* liberar los recursos y cerrar la conexion */
 mysql_free_result(res);
 mysql_close(conn);
}

Para compilar el programa, debemos pasar al compilador una serie de opciones que incluyen las referencias a las librerías y a los directorios en donde se encuentran los ficheros header. El paquete de desarrollo de cliente MySQL que hemos instalado incluye una utilidad “mysql_config” que genera la correspondiente lista de opciones a pasar al compilador. Haciendo uso de la misma, podemos compilar el programa de ejemplo con un comando de la forma:

$ gcc -o conexion_mysql $(mysql_config --cflags) $(mysql_config --libs) conexion_mysql.c

Y por último, podemos comprobar el resultado ejecutando el programa:

$ ./conexion_mysql
Tablas en la base de datos 'mysql':
columns_priv 
db 
event 
func 
general_log 
help_category 
help_keyword 
help_relation 
help_topic 
host 
ndb_binlog_index 
plugin 
proc 
procs_priv 
proxies_priv 
servers 
slow_log 
tables_priv 
time_zone 
time_zone_leap_second 
time_zone_name 
time_zone_transition 
time_zone_transition_type 
user

Referencias:

 Publicado por en 4:04 pm

 Deja un comentario

(requerido)

(requerido)