Publi

  • Utilizar una conexión MySQL desde EMACS

    Encontré hace tiempo en una página que, lamentablemente, ya no está operativa una forma de utilizar EMACS como cliente MySQL, aunque intentaré ampliar dicha información con alguna experiencia personal. Aunque podemos utilizar directamente el SQL mode, es muy incómodo porque cada vez que nos queramos conectar tenemos que dar todos los datos de la conexión, y eso nos hace perder la paciencia a más de uno. Es verdad que para una conexión esporádica no está mal, pero si te sueles conectar siempre a los mismos servidores, esto puede resultar muy útil.… Leer artículo completo

  • Backup de usuarios en MySQL

    4859841581_d254d4892b_o
    Cuando hacemos un dump de una base de datos MySQL, se suelen ignorar las bases de datos test, mysql e information schema, es una buena práctica, entre otras cosas porque si sobreescribimos la tabla mysql, podemos tener problemas en el futuro sobre todo si hay algún cambio menor (o mayor) de versión.

    Al final, la única información que nos interesa salvar de la base de datos mysql son los usuarios del sistema, con sus respectivas claves y permisos, que normalmente si tenemos varias aplicaciones corriendo sobre el mismo sistema de bases de datos, tendremos varios usuarios y no querremos perderlos.… Leer artículo completo

  • Logging en MySQL

    Muchas veces, cuando se desarrollan procedimientos almacenados (stored procedures) más o menos complejos, podemos dar con errores que nos pueden hacer perder mucho tiempo, y a veces la solución es visualizar el valor de una variable en un punto determinado del código.

    Aquí va una pequeña ayuda, es un código muy sencillo que podemos insertar en nuestra base de datos y nos permitirá escribir en una tabla lo que va pasando.… Leer artículo completo

  • Exportar datos de MySQL a un fichero CSV o tabulado


    En múltiples ocasiones, si sueles manejar bases de datos MySQL, te interesará exportar esa información para que sea interpretada por otro programa o una persona, y no queramos que dicha persona tenga acceso completo a nuestra base de datos, o que le queramos facilitar el trabajo de alguna forma.

    Este post, puede acompañar perfectamente a Introduciendo datos al servidor MySQL desde CSV con ejemplos.

    Es importante decir, que el archivo se generará en el equipo servidor, y no en el equipo desde el que accedemos, por lo que para recuperar los datos, es conveniente tener acceso al servidor, puede que por estar en el mismo ordenador (localhost) o porque tengamos acceso por SSH, FTP, etc.… Leer artículo completo

  • Introduciendo datos al servidor MySQL desde CSV con ejemplos (importar desde CSV)

    Esto nos resultará muy util a la hora de cargar datos en nuestra base de datos. imaginemos que tenemos una tabla como esta:

    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE Testing.NewTable (
        Id BIGINT,
        Nombre VARCHAR(100),
        Email VARCHAR(100),
        Telefono VARCHAR(100)
    )
    ENGINE=MyISAM;

    por ahora vacía, pero tenemos todos los datos que necesitamos en un archivo CSV como este:

    Caso más simple

    1;Antonio;antonio@dominio.com;123456789
    2;Armando;armando@dominio.com;234567891
    3;Carlos;carlos@dominio.com;345678912
    4;Ceferino;cefe@dominio.com;456789123
    5;Cipriano;cipri@dominio.com;567891234

    El primer ejemplo es fácil, simplemente hacemos:

    1
    2
    3
    LOAD DATA INFILE '/tmp/nombres.csv'
      INTO TABLE Testing.
    Leer artículo completo
  • Magia en Bash 50 ejemplos en una sola linea (o dos)

    Bash es una de las herramientas más potentes que tenemos a nuestro alcance, aunque no sólo de bash trata el artículo, sino de trucos para consola, one-liner como dirían muchos (aunque habrá algunos two-liners) que podemos utilizar y pueden hacernos la vida un poco más fácil:

    Cadenas de texto

    Trim

    Es una herramienta que utilizaremos para recortar nuestra cadena basándonos en los a la ìzquierda y a la derecha, en este caso nos basaremos en los espacios, que es uno de sus usos más comunes (así podemos obtener la cadena limpia tanto por delante como por detrás.… Leer artículo completo

  • Numerar los resultados de un SELECT en MYSQL

    Este ejemplo puede tener muchas utilidades. Por ejemplo, que queramos generar automáticamente campos ID (sin autoincrement), tanto empezando en 1 como empezando en el número que queramos o realizar alguna operación matemática con ese número; en definitiva vamos a introducir un número incremental a cada resultado que nos devuelva.

    Imaginamos que tenemos una tabla `Emails` donde tengo correos electrónicos y nombres de varios amigos. Para crear la estructura, copiar y pegar en MySQL:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    DROP SCHEMA IF EXISTS `PoesiaBinaria` ;
    CREATE DATABASE IF NOT EXISTS `PoesiaBinaria` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

    USE `PoesiaBinaria`;

    CREATE TABLE `Emails` (
           `Email` VARCHAR(100) NOT NULL,
           `Nombre` VARCHAR(200) NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

    INSERT INTO `Emails` (`Nombre`, `Email`) VALUES ('Pedro', 'pedro@misamigos.com');
    INSERT INTO `Emails` (`Nombre`, `Email`) VALUES ('Javier', 'javier@misamigos.com');
    INSERT INTO `Emails` (`Nombre`, `Email`) VALUES ('Gaspar', 'gaspar@misamigos.com');
    INSERT INTO `Emails` (`Nombre`, `Email`) VALUES ('Maria', 'maria@misamigos.com');
    INSERT INTO `Emails` (`Nombre`, `Email`) VALUES ('Sandra', 'sandra@misamigos.com');
    INSERT INTO `Emails` (`Nombre`, `Email`) VALUES ('Andrea', 'andrea@misamigos.com');
    INSERT INTO `Emails` (`Nombre`, `Email`) VALUES ('Clara', 'clara@misamigos.com');
    INSERT INTO `Emails` (`Nombre`, `Email`) VALUES ('Andres', 'andres@misamigos.com');

    Ahora puedo extraer datos de dicha tabla:

    1
    SELECT * FROM `Emails`;

    Que me devuelve:

    +——–+———————-+
    | Email | Nombre |
    +——–+———————-+
    | Pedro | pedro@misamigos.com |
    | Javier | javier@misamigos.com |
    | Gaspar | gaspar@misamigos.com |
    | Maria | maria@misamigos.com |
    | Sandra | sandra@misamigos.com |
    | Andrea | andrea@misamigos.com |
    | Clara | clara@misamigos.com |
    | Andres | andres@misamigos.com |
    +——–+———————-+
    8 rows in set (0.00 sec)

    Ahora bien, para numerar los resultados podemos hacer lo siguiente:

    1
    2
    SET @numero=0;
    SELECT @numero:=@numero+1 AS `posicion`, `Emails`.
    Leer artículo completo
  • Introducir el resultado de una consulta SELECT de mysql en un Array [BASH]

    data

    ¡Bash es una pasada! Es capaz de dejarnos hacer maravillas en poco tiempo y de automatizar lo inautomatizable, en este caso, traigo un ejemplo más, de cómo un código muy corto es capaz de presentarnos los resultados de una consulta SELECT de mysql:

    Los datos de prueba provienen de uno de mis proyectos: Málaga Bloguea donde muestro las últimas novedades de blogs de Málaga.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #!/bin/bash

    OLDIFS=IFS
    MYSQL_USER=#Usuario Mysql
    MYSQL_PASSWORD=#Password Mysql
    MYSQL_HOST="localhost"
    # IFS personalizado, para poder delimitar los campos correctamente
    IFS="`echo -e "\t\n\r\f"`"

    # Declaramos la variable como array, no es estrictamente necesario, pero sí un poco más correcto
    declare -a IPS

    # Generamos la consulta (Si vamos a utilizar un juego de caracteres determinado, como
    # UTF8, debemos especificar primero para evitar sorpresas.
    Leer artículo completo
  • Accediendo a bases de datos MySQL desde C++

    photo-1423592707957-3b212afa6733_r

    Muchos estamos acostumbrados a utilizar bases de datos en PHP pero cuando se trata de un programa de escritorio almacenamos los cambios en archivos sin contemplar esta posibilidad.

    Usar una base de datos puede ser un gran aliado a la hora de hacer aplicaciones que almacenen gran cantidad de información o vayamos a acceder desde varios puntos a dicha información (programas multipuesto, por ejemplo).

    También es de gran utilidad si construimos un software que haga más ligeras ciertas tareas dentro de un servidor web (necesitamos la posibilidad de ejecutar programas sobre el servidor y tal vez de compilarlos allí, pero es una opción bastante buena, en ocasiones un script puede ejecutarse de forma demasiado lenta.… Leer artículo completo

  • Instalar y configurar un servidor LAMP

    Lámpara de bajo consumoEn esta ocasión el servidor LAMP a instalar corresponderá con Linux + Apache + MySQL + PHP, intentaré dejarlo todo funcionando.

    Éste es el servidor local que suelo utilizar para mis proyectos web, de todas formas no me quiero meter en necesidades muy avanzadas, ni de seguridad (es un servidor local para hacer pruebas, desarrollar webs, y correr servicios locales; no un servidor de producción), si el servidor está cerrado al exterior, mejor.… Leer artículo completo