miércoles, 5 de febrero de 2014

Comandos de Mysql

Hoy vamos a hablar acerca de los comandos mas usados en MySQL, su sintaxis y daremos algunos ejemplos.

Comenzaremos con el comando SHOW el cual nos permite ver cuales son las tablas, bases de datos, permisos, motores de almacenamiento, entre otros disponibles en nuestro servidor MySQL.

Después de acceder de manera normal en su servidor Mysql, si desea saber que bases de datos hay disponibles debe usar el comando SHOW DATABASES como se muestra a continuación:
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zerocool           |
+--------------------+
4 rows in set (0.00 sec)
Para poder utilizar alguna de esas bases de datos que se nos presentan necesitamos el comando USE Nombre_de_base_de_datos. En el ejemplo siguiente mostraré como  trabajar con la base de datos MySQL:
mysql> USE mysql;
Database changed
Una vez en la base de datos podemos ver que tablas contiene usando SHOW TABLES:
mysql> SHOW TABLES;
+---------------------------+
| Tables_in_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                      |
+---------------------------+
24 rows in set (0.00 sec)

viernes, 31 de enero de 2014

Instalación y configuración de NGINX

Instalación


En Debian es recomendable usar los repositorios dotdeb  ya que contiene las versiones pre compiladas actualizadas del Nginx.Para hacer esto coloca en /etc/apt/sources.list el repositorio: packages.dotdeb.org,  bajar su llave pública de la dirección: http://www.dotdeb.org/dotdeb.gpg y agregarla al llavero de Debian.
echo "deb http://packages.dotdeb.org squeeze all" >> /etc/apt/sources.list"
wget  http://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg
apt-get update 
Luego se descarga el Nginx de manera normal con apt-get:
apt-get install nginx

En FreeBSD basta con usar pkg_add -vvv nginx (en FreeBSD 10 en adelante se usa pkg install nginx). También puede instalarlo con make install clean  desde /usr/ports/www/nginx (siempre y cuando tenga bien configurado el árbol de puertos). Nginx viene instalado por defecto en OpenBSD a partir de la versión 5.2.

Configuración


Una vez instalado Nginx encontraremos los archivos de configuración en el directorio /etc/nginx.

Para los que vienen de apache notaran que en Debian se mantiene el uso de la carpeta sites-available y sites-enabled (localizadas en /etc/nginx/). Los que no han trabajado con esta modalidad en la primera carpeta se encuentran los archivos de configuración de los sitios web “disponibles” y en la segunda un enlace simbólico a los sitios que están en sites-available que el administrador (osea ustedes) desea que sean servidos por Nginx.

A continuación coloco el /etc/nginx/nginx.conf editado por mí con sus respectivas explicaciones:
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
    worker_connections 768;
}

http {
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  types_hash_max_size 2048;
  server_tokens off;
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;
  gzip on;
  gzip_disable "msie6";
  gzip_vary on;
  gzip_types text/plain text/css application/x-javascript application/xml
  application/json image/png image/gif image/jpeg image/jpg;
  gzip_comp_level 6;
  gzip_buffers 16 8k;
  client_body_in_single_buffer on;
  client_body_buffer_size  1K;
  client_header_buffer_size 1k;
  client_max_body_size 1k;
  large_client_header_buffers 2 1k;
  client_body_timeout   10;
  client_header_timeout 10;
  keepalive_timeout     30;
  send_timeout          10;
  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
}

miércoles, 11 de diciembre de 2013

Administración de MySQL


Hoy hablaremos acerca de las actividades mas comunes que se realizan al administrar un servidor MySQL. Para tener una idea  mas clara sobre que hacen los comandos se recomienda leer mi articulo sobre manejo de bases de datos MySQL (en construcción).

Lo primero que debemos saber es como acceder a Mysql, esto lo podemos hacer de la siguiente manera:
$ mysql -h nombre_host_o_ip -P numero_de_puerto -u nombre_de_usuario -p
Donde: -h permite especificar a que host o dirección IP conectarse (por defecto localhost), -P el numero de puerto en el que escucha MySQL (por defecto 3306), -u significa usuario (root por defecto).

Nota: si queremos conectarnos con la cuenta root a localhost en el puerto 3306 solo basta con colocar
$ mysql -p

Crear usuarios

Existen tres métodos para crear los usuarios en MySQL, uno es mediante el comando CREATE, otro es modificando manualmente la tabla user de la base de datos mysql y el último es mediante el comando GRANT.

El primer método es el recomendado por los desarrolladores de MySQL porque es menos propenso a errores humanos (depediendo del humano ;)).

La sintaxis para crear usuarios es la siguiente:
mysql> CREATE USER 'nombre_usuario'@'nombre_host_o_ip'\ 
       IDENTIFIED BY mi_password';
Con el comando anterior se creó un usuario llamado nombre_usuario el cual accede al servidor MySQL que se encuentra en nombre_host_o_ip y posee el password mi_password. Por ejemplo, para crear el usuario aang, que accede a localhost y posee el password appa se usa el siguiente comando:

mysql> CREATE USER 'aang'@'localhost' IDENTIFIED BY 'appa';
Para crear un usuario mediante el segundo método se debe hacer lo siguiente:
mysql> INSERT INTO mysql.user VALUES ('nombre_host_o_ip',\
      'nombre_usuario', PASSWORD('mi_password'), 'Y', 'Y', 'Y', 'Y',\
      'Y','Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',\
      'Y', 'Y','Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '',\
      '', 0, 0, 0, 0);
Así que si creamos el usuario aang, que accede a localhost con el password appa usaremos lo siguiente:
mysql> INSERT INTO mysql.user VALUES ('localhost', 'aang',\
       PASSWORD('appa'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',\
       'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',\
       'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0);
Con GRANT lograremos lo mismo si hacemos lo siguiente:

GRANT ALL ON nombre_base_de_datos.* TO 'nombre_usuario'@'nombre_host_o_IP'\
      IDENTIFIED BY 'mi_password';

Eliminar usuarios

Tenemos dos métodos para borrar usuarios: DROP USER y DELETE FROM mysql.user.
Método 1:
mysql> DROP USER 'aang'@'localhost';
Método 2:
mysql> DELETE FROM mysql.user WHERE User='aang';

Bienvenidos a mi blog

Bienvenidos a este mi primer blog !!!

La razón de esta pagina es convertirla en un repositorio de algunas de las cosas que he aprendido en mi trabajo como administrador de red y jugando con los distintos gadgets que han caído en mis manos.

Esto no es mas que un sitio que me servirá para recordar mis experiencias y posiblemente a ustedes para resolver ciertos problemas y refrescar algunos conceptos.

Esperando que sea de provecho la información contenida en este sitio se despide:

Gabriel José Rojas Díaz.

EOF