Ir al contenido principal

Entradas

Duckdns o de cómo obtener un dominio gratuito

Duck DNS es un servicio de DNS dinámico gratuito, lo cual quiere decir que nos permitirá registrar un dominio (en realidad subdominio de duckdns.org) y apuntarlo a nuestra ip, por ejemplo, si montamos un servidor casero o contamos con algún proveedor en la nube, teniendo la posibilidad de actualizar la ip si ésta cambia. Lo mas común es usar este tipo de servicios cuando se desea exponer algún servicio que tengamos en casa y nuestro proveedor de internet nos proporcione solamente una ip dinámica (como lo hacen la gran mayoría de estos) Actualmente ya existen muchos routers que podemos configurar para que automáticamente actualicen la ip de nuestro dominio con este tipo de servicios, pero aquí vamos a ver como se puede configurar a nivel del sistema operativo linux ( en realidad esta será unicamente una traducción a las instrucciones que proporciona Duck DNS en la sección de instalación ). Preparación de nuestro dominio. Lo primero será registrarnos para obtener una cuen
Entradas recientes

Mover directorio de datos de MySQL (mariadb) a otro filesystem en Centos 7

Puede darse el caso en el que necesitemos mover el directorio en el cuál una base de datos MySQL almacena la información , por ejemplo, a un filesystem mas grande. El proceso es sencillo y existen varios tutoriales para realizarlo, por ejemplo: https://www.digitalocean.com/community/tutorials/how-to-move-a-mysql-data-directory-to-a-new-location-on-ubuntu-16-04 https://www.digitalocean.com/community/tutorials/how-to-change-a-mysql-data-directory-to-a-new-location-on-centos-7 Sin embargo, en Centos / RHEL hay un par de detalles a tomar en cuenta, especialmente aquellos que requieren modificar el contexto de seguridad SeLinux de los directorio. El primer paso es detener la ejecución del servicio, en mi caso el paquete instalado es mariadb-server: systemctl stop mariadb Mover el directorio. Ya que detuvimos el servicio vamos a realizar una copia del directorio de datos ( /var/lib/mysql en la mayoría de los casos) supongamos que el destino será /disk2/mysql :

Apache reverse proxy (Linux)

Imaginemos un caso en el cual requerimos publicar aplicaciones que están en diferentes servidores pero por alguna razón solo disponemos de una ip pública y/o dominio y solo podemos usar un puerto. En este caso podemos apoyarnos de una característica de apache para resolver el problema de manera sencilla, a esta característica se le conoce como "reverse proxy". Un reverse proxy nos da la posibilidad de que un servidor muestre contenido de otros servidores de manera transparente. Supongamos que contamos con el escenario es el siguiente: Dominio: midominio.com Puerto: 80 Servidor proxy apache (192.168.1.1) Servidor php apache (192.168.1.2) Servidor java tomcat  (192.168.1.3) Servidor .net iis (192.168.1.4) Lo que haremos es usar el reverse proxy para publicar las aplicaciones usando el mismo dominio y diferenciándolas por el contexto, es decir, si un usuario teclea en su navegador http://midominio/tomcat se recibirá la petición en el reverse proxy (192.168

Permitir conexiones externas MySQL (GNU/Linux)

MySQL ( ó mariadb ) valida el acceso a las bases de datos no solo por usuario, sino que también lo hace por ip de conexión y por defecto solo permite conexiones locales. Para permitir conexiones externas hay que hacer algunas configuraciones. 1. Edición archivo de configuración. En la mayoría de las distribuciones el archivo de configuración podemos encontrarlo en  /etc/mysql/my.cnf  ó  /etc/my.cnf. Es necesario editar este archivo agregando la siguiente línea (o editando en caso de existir el parámetro bind-address): bind-address = 0.0.0.0  Esto indicará al servicio que también puede escuchar peticiones de cualquier dirección ip ( como ya nos habremos imaginado no es lo mejor en cuestiones de seguridad, así que si deseamos realizar desde alguna ip en específico se puede realizar, por ejemplo; bind-address = 192.168.1.2 ). 2. Reiniciar el servicio. Es necesario reiniciar el servicio de MySQL para que el cambio en la configuración tome efecto: # systemctl restart mysqld

Concatenar estilo Oracle en MySQL

En mysql la forma convencional de concatenar campos y cadenas es usar la función concat, por ejemplo: mysql> SELECT CONCAT( campo1, ' una cadena' ) FROM tabla; ó mysql> SELECT CONCAT( campo1, ' ', campo2 ) FROM tabla; Sin embargo, al incrementarse la cantidad y complejidad de valores a concatenar, esto puede ser un poco confuso de leer ( al menos en mi caso que me siento mas cómodo usando el estilo de oracle ), por ello mysql implementa el concatenado usando el operador doble pipe ( || ), para poder activarlo solo es necesario ejecutar la siguiente instrucción: mysql> set sql_mode=PIPES_AS_CONCAT; De este modo ya podremos realizar queries de la siguiente manera: mysql>  SELECT campo1 || ' ' || campo2  FROM tabla;