domingo, 23 de marzo de 2014

Utilities, instalación y ejemplo de mysqlserverinfo.




 Las Utilities de MySQL es un conjunto de herramientas creadas para facilitar las tareas administrativas de una base de datos. Las Utilities están hechas en Python, un lenguaje de programación de fácil aprendizaje el cual es interpretado (por lo cual no es necesario compilarlo como C) y a la vez no es restrictivo al tipo de dato como lo es Java y lo cual lo hace un poco parecido a PHP. Siendo un projecto de Open source o de codigo abierto cualquier persona con un nivel básico de programación puede adaptar este código dependiendo de sus necesidades.

MySQL Utilities es un subprojecto de MySQL Workbench y en el pasado solo se podían usar después de instalarlo,  pero desde hace pocas versiones es posible descargarlas e instalar este conjunto de herramientas por separado. Para descargarlas solo hace falta dirigirse al sitio de  MySQL e ir al apartado de descargas, así mismo usando este URL: https://dev.mysql.com/downloads/tools/utilities/. Desde ahi podemos elegir un paquete de instalacion adecuado para nuestro sistema operativo o bien descargar el código, pero al hacerlo deberemos de descargar Python para poder instalarlo en nuestro equipo.

Instalación con un paquete de instalación.

 Podemos elegir un paquete de instalacion si nuestro sistema operativo es Microsoft Windows, Ubuntu Linux, Red Hat u Oracle Linux, Debian Linux o Mac OS X. Una vez descargado el archivo correcto este debería de instalarse sin ningún problema. Dado que cada plataforma o Sistema Operativo tiene sus diferentes formas de tener localizadas u organizados los diferentes programas que instalamos en ellos, me sería un poco complicado listar donde se instala las Utilities en cada uno de ellos, pero al haber utilizado un paquete de instalación podemos empezar a utilizar las Utilities inmediatamente una vez que termine la instalación en los sistemas basados en Linux desde la misma terminal que usamos para correr la instalación.

Así mismo si no lo hubiéremos hecho antes también necesitaremos instalar de la misma manera el proyecto de MySQL Connector Python, el cual es una librería para conectarse al servidor de MySQL y necesario para que podamos instalar y correr MySQL Utilities. podremos descargarlo desde este URL https://dev.mysql.com/downloads/connector/python/.

En el caso de Windows solo tendremos que abrir una linea de comandos en Inicio y en Ejecutar escribimos "cmd", una vez ahí cambiamos de carpeta a la cual hubiéramos escogido para la instalación con el comando "cd", por default la carpeta de instalación será "C:\Archivos de Programa (x86)\MySQL\MySQL Utilities" si nuestro sistema es de 64 bit de lo contrario sería "C:\Archivos de Programa\MySQL\MySQL Utilities" de esta forma:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Usuarios\isrgomez>cd C:\
Archivos de Programa (x86)\MySQL\MySQL Utilities

Una vez ahí con el comando "dir" hemos de poder ver la lista de archivos instalados y con ellos los archivos de arranque de cada herramienta que proporcina MySQL Utilities, cada uno comienza con el sufijo 'mysql'.

C:\Archivos de Programa (x86)\MySQL\MySQL Utilities>dir
 Volumen en disco C is System
 Número
Serial Volumen es B2CA-D3AF

 Directorio C:\
Archivos de Programa (x86)\MySQL\MySQL Utilities

03/11/2012  07:27 AM    <DIR>          .
03/11/2012  07:27 AM    <DIR>          ..
04/10/2012  10:31 PM            59,904 bz2.pyd
03/11/2012  07:27 AM    <DIR>          Doctrine extensions for PHP
03/10/2012  05:23 PM         1,927,482 library.zip
03/10/2012  05:17 PM             2,779 LICENSE_com.txt
11/23/2012  11:15 AM           728,576 mysqlauditadmin.exe
11/23/2012  11:15 AM           728,576 mysqlauditgrep.exe
11/23/2012  11:15 AM           728,576 mysqldbcompare.exe
11/23/2012  11:15 AM           728,576 mysqldbcopy.exe
11/23/2012  11:15 AM           728,576 mysqldbexport.exe
11/23/2012  11:15 AM           728,576 mysqldbimport.exe
11/23/2012  11:15 AM           728,576 mysqldiff.exe
11/23/2012  11:15 AM           728,576 mysqldiskusage.exe
11/23/2012  11:15 AM           728,576 mysqlfabric.exe
11/23/2012  11:15 AM           728,576 mysqlfailover.exe
11/23/2012  11:15 AM           728,576 mysqlfrm.exe
11/23/2012  11:15 AM           728,576 mysqlindexcheck.exe
11/23/2012  11:15 AM           728,576 mysqlmetagrep.exe
11/23/2012  11:15 AM           728,576 mysqlprocgrep.exe
11/23/2012  11:15 AM           728,576 mysqlreplicate.exe
11/23/2012  11:15 AM           728,576 mysqlrpladmin.exe
11/23/2012  11:15 AM           728,576 mysqlrplcheck.exe
11/23/2012  11:15 AM           728,576 mysqlrplms.exe
11/23/2012  11:15 AM           728,576 mysqlrplshow.exe
11/23/2012  11:15 AM           728,576 mysqlrplsync.exe
11/23/2012  11:15 AM           728,576 mysqlserverclone.exe
11/23/2012  11:15 AM           728,576 mysqlserverinfo.exe
11/23/2012  11:15 AM           728,576 mysqluc.exe
11/23/2012  11:15 AM           728,576 mysqluserclone.exe
04/10/2012  10:31 PM           103,424 pyexpat.pyd
04/10/2012  10:31 PM         2,303,488 python27.dll
03/10/2014  05:17 PM               855 README_com.txt
03/11/2014  07:27 AM    <DIR>          scripts
04/10/2012  10:31 PM             9,728 select.pyd
04/10/2012  10:31 PM           686,592 unicodedata.pyd
04/10/2012  10:31 PM            74,240 _ctypes.pyd
04/10/2012  10:31 PM           285,184 _hashlib.pyd
04/10/2012  10:31 PM            23,552 _multiprocessing.pyd
04/10/2012  10:31 PM            40,960 _socket.pyd
04/10/2012  10:31 PM           721,920 _ssl.pyd
              37 File(s)     23,725,932 bytes
               4 Dir(s)  71,789,903,872 bytes free

C:\
Archivos de Programa (x86)\MySQL\MySQL Utilities>_

Al ser archivos que terminan con la extencion 'exe', podremos ejecutar estos archivos con tansolo escribir el nombre de alguno de ellos, por ejemplo:

C:\Archivos de Programa (x86)\MySQL\MySQL Utilities>mysqldiff.exe --help

Instalando el código fuente.


 De haber escogido instar las Utilities usando el código fuente una vez descargado el archivo zip or tar y descomprimido, podemos correr la instalación usando los siguientes comandos desde una terminal o linea de comandos (según sea el caso):

python setup.py build
y luego:
python setup.py install

 Así mismo si no lo hubiéremos hecho antes también necesitaremos instalar de la misma manera el proyecto de MySQL Connector Python, el cual es una librería para conectarse al servidor de MySQL y necesario para que podamos instalar y correr MySQL Utilities. podremos descargarlo desde este URL https://dev.mysql.com/downloads/connector/python/

 Para el caso de los sistemas Operativos basados en Linux, podremos comenzar a utilizar las herramientas inmediatamente si nuestra variable "PATH" incluye '/usr/local/bin' o bien con el comando whereis podemos ver donde se huebieren instalado si la configuracion del sistema fuere diferente a la pre-establecida, aqui un ejemplo en Ubuntu Linux:

isdx@ubuntu:~$ whereis mysqldiff
mysqldiff: /usr/local/bin/mysqldiff /usr/share/man/man1/mysqldiff.1.gz


 Para el caso de Windows, después de haber instalado MySQL Utilities necesitamos cambiar de directorio de "Scripts" dentro de la carpeta de "Python" y usando 'dir' podremos ver las herramientas donde cada una comienza con el sufijo 'mysql'.

C:\Python27\Scripts>dir
 Volumen en disco C is System
 Número Serial Volumen es B2CA-D3AF

 Directorio of C:\Python27\Scripts

03/20/2014  03:56 PM    <DIR>          .
03/20/2014  03:56 PM    <DIR>          ..
03/20/2014  03:55 PM            10,839 mysqlauditadmin.py
03/20/2014  03:55 PM            13,791 mysqlauditgrep.py
12/19/2013  03:32 PM             4,185 mysqlbinlogreader.py
03/20/2014  03:55 PM            11,761 mysqldbcompare.py
03/20/2014  03:55 PM            13,856 mysqldbcopy.py
03/20/2014  03:55 PM            15,155 mysqldbexport.py
03/20/2014  03:55 PM            13,039 mysqldbimport.py
03/20/2014  03:55 PM             9,997 mysqldiff.py
03/20/2014  03:55 PM             6,910 mysqldiskusage.py
03/20/2014  03:55 PM            13,917 mysqlfailover.py
03/20/2014  03:55 PM            17,175 mysqlfrm.py
03/20/2014  03:56 PM             5,378 mysqlindexcheck.py
03/20/2014  03:55 PM             4,855 mysqlmetagrep.py
03/20/2014  03:55 PM             5,456 mysqlprocgrep.py
03/20/2014  03:55 PM             6,625 mysqlreplicate.py
03/20/2014  03:55 PM            14,521 mysqlrpladmin.py
03/20/2014  03:55 PM             5,770 mysqlrplcheck.py
03/20/2014  03:55 PM            14,895 mysqlrplms.py
03/20/2014  03:55 PM             5,950 mysqlrplshow.py
03/20/2014  03:56 PM            11,172 mysqlrplsync.py
03/20/2014  03:55 PM             7,810 mysqlserverclone.py
03/20/2014  03:55 PM             5,029 mysqlserverinfo.py
03/20/2014  03:55 PM             6,381 mysqluc.py
03/20/2014  03:55 PM             6,849 mysqluserclone.py
              30 File(s)        250,063 bytes
               2 Dir(s)  71,789,162,496 bytes free


Comenzando con la ayuda.

 Cada herramienta que proporciona MySQL Utilities cuenta con la option de "--help", para que podamos ver las diferentes opciones que soporta, por ejemplo:

python mysqlserverinfo.py --help
MySQL Utilities mysqlserverinfo.exe version 1.4.2 (part of MySQL Workbench Distribution 6.0.0)
License type: Commercial
Usage: mysqlserverinfo.exe --server=user:pass@host:port:socket --format=grid

mysqlserverinfo - show server information

Options:
  --version             show program's version number and exit
  --help                display a help message and exit
  --license             display program's license and exit
  --server=SERVER       connection information for the server in the form:
                        <user>[:<password>]@<host>[:<port>][:<socket>] or
                        <login-path>[:<port>][:<socket>].
  -f FORMAT, --format=FORMAT
                        display the output in either grid (default), tab, csv,
                        or vertical format
  -h, --no-headers      do not show column headers
  -d, --show-defaults   show defaults from the config file per server
  -s, --start           start server in read only mode if offline
  --basedir=BASEDIR     the base directory for the server
  --datadir=DATADIR     the data directory for the server
  --port-range=PORTS    the port range to search for running mysql servers on
                        Windows systems
  --show-servers        show any known MySQL servers running on this host
  --start-timeout=START_TIMEOUT
                        Number of seconds to wait for the server to start.
                        Default = 10.
  -v, --verbose         control how much information is displayed. e.g., -v =
                        verbose, -vv = more verbose, -vvv = debug


Comenzando con mysqlserverinfo.


 En esta ocasión daremos un vistazo a mysqlserverinfo, una herramienta que nos muestra la configuración del servidor de MySQL del cual le proporcionemos el usuario y password así como el host o direccion IP y el puerto en el que server este escuchando por posibles conexiones.

C:\Python27\Scripts>mysqlserverinfo.py --server=root:root@localhost:3393 --format=vertical
# Source on localhost: ... connected.
*************************       1. row *************************
                   server: localhost:3393
              config_file:
               binary_log: clone-bin.000001
           binary_log_pos: 3713651
                relay_log:
            relay_log_pos:
                  version: 5.6.15-log
                  datadir: C:\MySQL\mysqlu93\
                  basedir: C:\MySQL\mysql-5.6.15-winx64
               plugin_dir: C:\MySQL\mysql-5.6.15-winx64\lib\plugin\
              general_log: OFF
         general_log_file:
    general_log_file_size:
                log_error:
      log_error_file_size:
           slow_query_log: OFF
      slow_query_log_file:
 slow_query_log_file_size:
1 row.
#...done.


 En este ejemplo estoy usando el formato de salida Vertical, para que la herramienta imprima cada opcion en un renglon diferente y sea de facil lectura, tambien pueden probar con los formatos de "grid (default), tab, csv". Esta herramientaes es util para obtener rápidamente información aqui una leve descripcion de los mas importantes, en otra ocación describire con más detalle cada opción.

server: nombre del host y el puerto actual (util si redireccionamos la salida de diferentes servidores a un solo archivo).

datadir:         El Directorio (o path) donde se encuentran los archivos de la base de datos.
basedir:         El path con los ejecutables de MySQL Server
plugin_dir:    Directorio que contiene los plugins aviables para el Server.

binary_log:    El archivo de log activo.
binary_log_pos: posición en el archivo de log.

Solo para el caso que este servidor este replicando relay_log y relay_log_pos.

hasta aquí por hoy, en el siguiente post comenzaremos a ver algunos ejemplos de como utilizar las diferentes herramientas que ofrece MySQL Utilities.

No hay comentarios.:

Publicar un comentario