Instalación de MySQL en Fedora Linux 20

Estándar

Si bien la instalación del servidor MySQL es un proceso muy sencillo en Fedora Linux, una serie de cambios Fedora 20 hacen que el proceso sea un poco mas elaborado de lo que solia ser, esto es mas una molestia que otra cosa, pero puede causar confusión si se basa en tutoriales que describen el proceso en una version anterior, por esta razón escribo este tutorial de como realizar la instalación de MySQL, el servidor y MySQL Workbench en Fedora Linux 20.

Cambios en el manejador de paquetes.

Uno de los cambios mas evidentes es el hecho que la aplicación para instalar y desinstalar paquetes a cambiado en favor de la aplicación desarrollada por el proyecto GNOME, en general la aplicación se siente como una mejora de la versión anterior, pero por al parecer maneja la lista de paquetes de otra forma o aun le falta un poco de pulido, en ambos casos si busca MySQL en el obtiene el resultado de la figura 1

Figura 1 - Resultados de la busqueda

Figura 1 – Resultados de la busqueda

Varios resultados de interes, pero ni una mención del servidor MySQL, esto pareceria preocupante, pero si usamos la linea de comandos con el comando yum search MySQL obtenemos una muy notable lista de paquetes disponibles, como vemos en la figura 2.

Figura 2 - Resultados de yum search

Figura 2 – Resultados de yum search

Instalando el servidor MySQL y Workbench.

De estos paquetes los que necesitara para obtener el servidor MySQL y sus utilerias son los siguientes:

  1. community-mysql
  2. community-mysql-server
  3. mysql-utilities
  4. mysql-connector-java

Si ya ha usado MySQL en plataformas Windows seguramente le extrañara que no se halla mencionado el entorno MySQL Workbench, el cual es una forma muy practica y sencilla de administrar el servidor, respaldar y restaurar bases de datos y hacer consultas, este paquete ya no esta disponible desde el repositorio de software debido a problemas de licencias, puede instalarlo en su versión mas reciente descargando el paquete directamente desde la pagina oficial , la cual es: http://dev.mysql.com/downloads/tools/workbench/ simplemente seleccione Fedora como plataforma y descargue la versión adecuada para su sistema.

Una vez que halla descargado el paquete .rpm adecuado proceda a instalarlo con ayuda del comando yum localinstall <archivo.rpm> esto instalara el paquete y descargara todas las dependencias adecuadas, una vez que halla instalado todos los paquetes puede abrir MySQL Workbench, el cual se vera como en la figura 3

Configurando el servidor MySQL.

Figura 3 - MySQL Workbench

Figura 3 – MySQL Workbench

Ya que habra workbench debera de definir la conexión con el servidor local, para esto presione el simbolo + a la derecha del mensaje “MySQL Connections”, lo cual le presentara el asistente mostrado en la figura 4

Figura 4 - Nueva conexión Mysql

Figura 4 – Nueva conexión Mysql

Pero si intenta probar la conexión con el servidor con el botón “Test Connection” recibira el mensaje de error mostrado en la figura 5

Figura 5 - No se pudo conectar

Figura 5 – No se pudo conectar

Esto se debe a que no tenemos corriendo el servicio mysql, para inicializarlo necesita ejecutar como administrador el comando: service mysqld start este iniciara el servicio si bien con esto ya podríamos configurar la conexión desde Workbench es recomendable que configure la contraseña de acceso para el usuario root, ya que de este modo podra usar las funciones de Workbench para configurar las demas opciones, para lograr esto use el comando: mysqladmin -u root password ‘<contraseña>’ , siempre y cuando su instalación aun no tenga establecida la contraseña de root con este comando la establecera.

Ahora que tenemos el servidor MySQL corriendo y la contraseña de root establecida podemos volver a intentar configurar la conexión, para este caso sugiero usar el nombre “localhost”, ya que lo especifique presione “Test Connection”, aparecerá un dialogo solicitando la contraseña de root como se ve en la figura 6.

Figura 6 - Prueba de conexión

Figura 6 – Prueba de conexión

Escriba la contraseña en el dialogo y si es correcta aparecerá un mensaje como en la figura 7

Figura 7 - Conexión exitosa

Figura 7 – Conexión exitosa

Cierre ese dialogo y presione OK para guardar la conexión, ahora esta aparcera en la pantalla, como puede ver en la figura 8

Figura 8 - Conexión al servidor

Figura 8 – Conexión al servidor

Y para acceder solo de doble click y proporcione la contraseña del usuario root, lo que le presentara el entorno de trabajo propiamente hablando como aparece en la figura 9

Figura 9 - Workbench

Figura 9 – Workbench

Espero que esta entrada halla sido de utilidad y nos vemos en la próxima.

Acceder a un servidor FTP con Java y Apache Commons Net

Estándar

Una de las formas mas sencillas de almacenar archivos en un servidor remoto es por medio del ya clásico protocolo de Transferencia de Archivos, mejor conocido como FTP y su versión actualizada el sFTP, por esto no es de extrañar la existencia de librerías que le permitan al lenguaje Java el uso de estos protocolos como lo son las librerias Apache Commons Net, cuyo uso basico se describira en esta entrada.

Obteniendo las librerias Apache Common Net

Las librerias para el acceso a FTP (asi como otro conjunto de protocolos de red) puede obtenerse en la pagina oficial de la libreria Apache Commons, en la sección de descargas específicamente http://commons.apache.org/proper/commons-net/download_net.cgi para el ejemplo de esta entrada utilizaremos la versión 3.3, descargue los binarios ya sea en .zip o en tar.gz al abrir el archivo y entrar a la carpeta commons-net-3.3 observara algo similar a la figura 1

Figura 01 - contenido del archivo

Figura 01 – contenido del archivo

De los archivos presentes extraiga el archivo commons-net-3.3.jar este es el que contiene las librerías en si.

Creando proyecto

Cree un nuevo proyecto en Eclipse (en este caso lo llamare FtpList) y agregue la librería commons-net-3.3.jar a este mismo, el procedimiento para agregar una librería a un proyecto en Eclipse esta descrito con detalle en la siguiente entrada de este blog: https://hashblogeando.wordpress.com/2013/07/14/itext-generacion-de-archivo-pdf-en-java/ .Una vez que la librería este agregada el entorno lucirá como la figura 2

Figura 02 - Proyecto ejemplo

Figura 02 – Proyecto ejemplo

Hecho esto podemos comenzar con el código.

Programa

Como un ejemplo sencillo de lo que se puede hacer con la librería apache commons accederemos a un servidor ftp y listaremos los archivos del directorio raíz.

package mx.hashSoft.ftpList;

import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class Listar {

   static public void main(String[] args) {

      // Datos para la conexion
      String server = <dirección del servidor>;
      String username = <Usuario del servidor>;
      String password = <Contraseña del usuario>;

      // Cliente de conexion a FTP
      FTPClient ftp = new FTPClient();

      int respuesta, i;
      String[] lista;

      try{
            System.out.println(“CONECTANDO AL SERVIDOR FTP”);
            // Conectando e identificandose con el servidos
            ftp.connect(server);
            ftp.login(username, password);
            // Entrando a modo pasivo
            ftp.enterLocalPassiveMode();

            // Obteniendo respuesta del servidos
            respuesta = ftp.getReplyCode();
            System.out.println(“RESPUESTA ” + respuesta);

            // Si la respuesta del servidor indica podemos pasar procedemos
            if(FTPReply.isPositiveCompletion(respuesta) == true ) {
                  System.out.println(“LISTANDO ARCHIVOS”);
                  lista = ftp.listNames();

                  for(i=0; i<lista.length; i++) {

                        System.out.println(lista[i]);
                  }
            // Si no avisamos
            } else {
                        System.out.println(“ERROR DE CONEXION”);
            }

            // en ambos casos terminaos sesion
            ftp.logout();
            // Y nos desconectamos
            ftp.disconnect();

            // Esta excepcion se lanza en caso de algun error durante el proceso
            }catch(IOException e) {
                  System.out.println(“Error de conexion”);
            }
      }
}

Como ya es costumbre las lineas en rojo son las mas importantes para realizar la conexión y listar los archivos, estas se describirán a continuación:

import java.io.IOException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; : Estas son las clases que necesitaremos para este ejemplo que son la excepción de entrada/salida, el cliente FTP y las respuestas del cliente FTP todas se usara en este ejemplo.

String server = <dirección del servidor>; String username = <Usuario del servidor>; String password = <Contraseña del usuario>; : Aqui colocamos las información para conectarnos al servidor, necesitara la dirección del servidor FTP, el usuario de dicho servidor y la contraseña de dicho usuario.

FTPClient ftp = new FTPClient(); : Creamos un objecto para acceder a un servidor FTP

ftp.connect(server); : Nos conectamos al servidor, es importante notar que conectarse al servidor no es lo mismo que iniciar sesión.

ftp.login(username, password); : Iniciamos sesión en el servidor, para esto debe de indicarse el nombre de usuario y la contraseña de dicho usuario.

ftp.enterLocalPassiveMode(); : Entrar al modo pasivo, esto es recomendable para conexiones con en la forma cliente-servidor.

respuesta = ftp.getReplyCode(); : Con esto obtenemos la respuesta que dio el servidor a la ultima instrucción que enviamos.

FTPReply.isPositiveCompletion(respuesta) : Con esto comprobamos que la respuesta a nuestro ultimo pedido halla sido positiva, lo que significa que se realizo correctamente.

lista = ftp.listNames(); : Con esta instrucción solicitamos la lista de nombres de archivo y directorios en el directorio actual.

ftp.logout(); : Terminamos la sesión actual en el servidor.

ftp.disconnect(); : Nos desconectamos del servidor.

catch(IOException e) : Esta clausula catch es para manejar la excepción que se genera si algo ocurre durante la conexión.

Para correr el programa necesitara indicar los datos correctos para el servidor, usuario y contraseña, hecho esto ejecute el programa, el resultado lucirá como la figura 3

Figura 03 - Salida del programa

Figura 03 – Salida del programa

Espero que esta entrada fuera de ayuda y nos vemos en la próxima.

FTP file transfer in Java using Apache Commons Net

Estándar

Codigo para subir un archivo FTP usando Java y las librerias Apache

Glass Onion Blog

The following sample code works well with Java 1.5 and Apache Commons Net 1.4.1

import org.apache.commons.net.ftp.*;
...
boolean ftpTransfer(String localfile, String destinationfile)
{
	String server = "ftp.domain.com";
	String username = "ftpuser";
	String password = "ftppass";
	try
	{
		FTPClient ftp = new FTPClient();
		ftp.connect(server);
		if(!ftp.login(username, password))
		{
			ftp.logout();
			return false;
		}
		int reply = ftp.getReplyCode();
		if (!FTPReply.isPositiveCompletion(reply))
		{
			ftp.disconnect();
			return false;
		}
		InputStream in = new FileInputStream(localfile);
		ftp.setFileType(ftp.BINARY_FILE_TYPE);
		boolean Store = ftp.storeFile(destinationfile, in);
		in.close();
		ftp.logout();
		ftp.disconnect();
	}
	catch (Exception ex)
	{
		ex.printStackTrace();
		return false;
	}
	return true;
}
 

Ver la entrada original