Buscando artículos sobre "MySQL"
1-noviembre-2016
admin

Generar modelo entidad relación a partir de una base de datos MySQL

Para obtener automáticamente un modelo entidad relación a partir de una base de datos MySQL se puede utilizar la herramienta MySQL Workbench.

Modo de uso:
1 – Hay que descargarsela e instalarla.

2 – Nos vamos al menú superior Database y seleccionamos la opción de Reverse Engineer (Ingeniería inversa).

3 – Rellenamos los datos de conexión a la BD en la ventana que se nos abrirá.

4 – Se va siguiendo las distintas ventanas que van saliendo dando a next. Ellas nos irá pidiendo la bd de la que se quieren extraer los datos, los objetos a extraer,..

5 – Si todo va bien al final nos mostrará el modelado con las tablas pedidas.


31-agosto-2016
admin

Crear aplicación a partir de la Base de Datos con Spring Roo

Paso 1: Instalar Spring Roo
– En primer lugar necesitas tener instalado Java y Maven.
– A continuación te descargas Spring Roo de la página oficial.
– Se descomprime en un directorio y se añade al path. En windows seria añadir en el path $ROO_HOME\bin siendo $ROO_HOME el directorio donde lo has descomprimido.
– Para comprobar que se ha instalado correctamente podemos ejecutar directamente en la consola el siguiente comando.
roo quit
Si todo va bien debería mostrarnos el logo de Spring Roo.


Paso 2: Crear un proyecto de Spring Roo
Se puede crear de distintas formas:
– Con el STS se puede crear un proyecto de Spring Roo como tal.
– Con el eclipse también se podría añadiendo el plugin de Spring Roo.
– Y por último también podriamos utilizar directamente la consola para su creación.

De esta forma, los comandos para la creación de un proyecto a partir de una BD Mysql serían:

//Primero se configura la BD de la que luego se hará ingeniería inversa...
jpa setup --database MYSQL --provider HIBERNATE --databaseName nombre_de_mi_esquema --hostName ip_de_mi_mysql --userName mi_usuario --password mi_contraseña
//Luego se puede comprobar si se ha realizaco la conexión bien
database introspect --schema nombre_de_mi_esquema
// si te dice que no encuentra el driver puedes instalarlo así
addon search mysql
//te deberia salir una lista con los drivers que puedes instalar para a continuación
addon install id --searchResultId xx    
//xx sería el codigo del driver mostrado en el listado que saca el anterior comando...
//En mi caso me dió problemas y el de mysql no me lo instaló bien así que lo instale a mano.
//Para ello me lo descargue y lo instalé con el siguiente comando:
osgi start --url file:///C:\\mysql-connector-java-5.1.18.jar
//Ahora ya se puede crear las entidades a partir de la BD.
database reverse engineer --schema nombre_de_mi_esquema --package ~.domain --includeTables "tab_*"

Por último sería añadir el resto del negocio y la presentación. Para ello pongo dos ejemplos: MVC y JSF.

//Usando Spring MVC
web mvc setup
web mvc all --package ~.web
Usando JSF
web jsf setup --implementation --library --theme
web jsf all --package ~.web

Como nota decir que se lía algo con las tablas con clave primaria múltiple (hay que quitar unos errores que salen en los ficheros *.aj que crea).

Puedes probar a ejecutar el proyecto simplemente con la instrucción de manve
mvn clean install jetty:run


Documentación:
Ejemplo de creación de un proyecto con STS. Ver
Ejemplo de creación de un proyecto con el plugin de eclipse para Spring Roo. Ver

22-agosto-2016
admin

Error 1130 (HY000): Host ” is not allowed to connect to this MySQL server

Cuando al intentar conectar a un MySQL desde otro servidor te puede dar este error. Esto es debido a que no tiener permisos para acceder con el usuario que estas intentándolo desde tu host.

-
- Error 1130 (HY000): Host '' is not allowed to connect to this MySQL server
-

Por ejemplo si el usuario que estas usando es root, puedes comprobar desde que sitios se puede acceder utilizando esta select:

SELECT host FROM mysql.user WHERE User = 'root';

Si esa query no devuelve ningún resultado con tu ip, deberás añadirla. Para ello:

CREATE USER 'root'@'tu_ip' IDENTIFIED BY 'contraseña';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'tu_ip';
FLUSH PRIVILEGES;

Nota: si deseas dar permisos a todas las ips, en lugar de ‘tu_ip’ puedes poner ‘%’.

11-abril-2014
admin

Squirrel SQL Client

Squirrel SQL Client se trata de una aplicación java multiplataforma. Presenta un entorno muy intuitivo a través del cuál podemos configurar conexiones a distintas bases de datos.

Permite la realización de multiples conexiones simultaneas a distintas bases de datos y la realizacion de consultas sobre las mismas. Proporciona la opción de autocompletado de campos pulsando Ctrl+espacio. También permite exportar los datos a inserts, excel, csv…

Instalación:
1. Descargar SQuirreL. Es necerario tener instalado y configurado correctamente el JDK 1.6 o superior.

2. Abrir una consola de comandos (Inicio > Ejecutar > cmd)

3. Ir al directorio donde se descargó SQuirreL

4. Ejecutar el siguiente comando:

java -jar squirrel-sql-3.3.0-install.jar

5. Seguir los pasos de la instalación y en la opción de selección de paquetes a instalar, seleccionar:
DBCopy, DBDiff, MySQL, Oracle, PostgreSQL, Smart Tools, SQL Parametrisation, SQL Replace, SQL Validator, Internationalization, Spanish

Agregar driver para conectar a una Base de datos
1. Descargar el driver JDBC para la base de datos que se desea conectar.

2. Copiar el driver descargado al directorio lib del directorio de instalación de SQuirreL %squirrel_home%\lib.

3. Iniciar SQuirreL



Dirección oficial
Configurar Squirrel para MySQL
Configurar Squirrel para Oracle

31-marzo-2014
admin

Tipos de generadores de identificadores en hibernate

En hibernate podemos utilizar el elemento generator para generar identificadores únicos para instancias de la clase persistente. De requerirse algún parámetro para configurar o inicializar la instancia del generador, se pasa utilizando el elemento .

Todos los generadores implementan la interfaz org.hibernate.id.IdentifierGenerator. Algunas aplicaciones pueden decidir brindar sus propias implementaciones especializadas. Sin embargo, Hibernate provee un rango de implementaciones ya incorporadas. Los nombres de atajo para los generadores incorporados son los siguientes:

increment: genera indentificadores de tipo long, short o int que sólamente son únicos cuando ningún otro proceso está insertando datos en la misma tabla. No lo utilice en un clúster.

identity: soporta columnas de identidad en DB2, MySQL, MS SQL Server, Sybase y HypersonicSQL. El identificador devuelto es de tipo long, short o int.

sequence: usa una secuencia en DB2, PostgreSQL, Oracle, SAP DB, McKoi o un generador en Interbase. El identificador devuelto es de tipo long, short o int.

hilo: utiliza un algoritmo alto/bajo para generar eficientemente identificadores de tipo long, short o int, dada una tabla y columna como fuente de valores altos (por defecto hibernate_unique_key y next_hi respectivamente). El algoritmo alto/bajo genera identificadores que son únicos sólamente para una base de datos particular.

seqhilo: utiliza un algoritmo alto/bajo para generar eficientemente identificadores de tipo long, short o int, dada una secuencia de base de datos.

uuid: utiliza un algoritmo UUID de 128 bits para generar identificadores de tipo cadena, únicos dentro de una red (se utiliza la direccón IP). El UUID se codifica como una cadena hexadecimal de 32 dígitos de largo.

guid: utiliza una cadena GUID generada por base de datos en MS SQL Server y MySQL.

native: selecciona identity, sequence o hilo dependiendo de las capacidades de la base de datos subyacente.

assigned: deja a la aplicación asignar un identificador al objeto antes de que se llame a save(). Esta es la estrategia por defecto si no se especifica un elemento < generator>.

select: recupera una clave principal asignada por un disparador de base de datos seleccionando la fila por alguna clave única y recuperando el valor de la clave principal.

foreign: utiliza el identificador de otro objeto asociado. Generalmente se usa en conjunto cón a una asociación de clave principal < one-to-one>.

sequence-identity: una estrategia de generación de secuencias especilizadas que utiliza una secuencia de base de datos para el valor real de la generación, pero combina esto junto con JDBC3 getGeneratedKeys para devolver el valor del identificador generado como parte de la ejecución de la declaración de inserción. Esta estrategia está soportada sólamente en los controladores 10g de Oracle destinados para JDK1.4. Los comentarios en estas declaraciones de inserción están desactivados debido a un error en los controladores de Oracle.

Ejemplo 1:
Si tenemos una clave primaria “idAplicacion” en MySQL con la propiedad auto_increment, se mapearia así:

//Mapeo usando anotaciones
        @Id
        @GeneratedValue
        private Integer idAplicacion;

//Mapeo en fichero hbm
        < id name="idAplicacion" type="int" unsaved-value="0">
            < column name="idAplicacion" precision="5" scale="0"/>
	    < generator class="identity"/>
        < /id>

Ejemplo 2:
Si tenemos una clave primaria “idAplicacion” en una BD oracle y queremos asignarle una secuencia llamada SEQ_ID_APLICACION, se mapearía así:

//Mapeo usando anotaciones
        @Id
        @SequenceGenerator(name="seq", sequenceName="SEQ_ID_APLICACION")
        @GeneratedValue(strategy=GenerationType.AUTO, generator="seq")
        private Integer idAplicacion;

//Mapeo en fichero hbm
        
                
                
                        SEQ_ID_APLICACION
                
        

Fuente
Explicación de diferentes generadores con ejemplos

16-marzo-2014
admin

Crear una base de datos y un usuario en MySQL.

Si por ejemplo quisiéramos crear un DATABASE para gestionar las distintas tablas de una gestión de trabajadores podríamos utilizar:

CREATE DATABASE TRABAJADORES;

Una vez creada podemos asociarle un usuario ‘user001’ que tengo provilegios totales sobre él y de contraseña también ‘user001’.

GRANT ALL PRIVILEGES ON TRABAJADORES.* 
          TO 'user001'@'%' IDENTIFIED BY 'user001';

Para que podamos conectarnos a ella desde cualquier equipo se pone ‘user001’@’%’. Si por ejemplo solo se quisiera poder utilizar desde local se pondría ‘user001’@’localhost’

Fuente con mucha más información:
Sintaxis CREATE DATABASE
Añadir cuentas de usuario

15-marzo-2014
admin

Instalar MySQL 5.6 en Red Hat/Oracle Enterprise Linux

1/ En primer lugar descargarse de la página oficial los paquetes: Shared Components, Client y Server. En este caso he utilizado la version de 64 bits:

    MySQL-shared-compat-5.6.16-1.el6.x86_64.rpm
    MySQL-client-5.6.16-1.el6.x86_64.rpm
    MySQL-server-5.6.16-1.el6.x86_64.rpm

2/ Antes de comenzar la instalación hay que revisar si ya tenemos instalados los paquetes mysql-libs y mysql-server. En caso de que estén, debemos eliminarlos ya que sino no nos dejará realizar la instalación correctamente.

//Comprobación de existencia de esos paquetes
yum list mysql-libs
yum list mysql-server

//Eliminación si existiesen
yum remove mysql-server
yum remove mysql-libs

3/ También debemos instalar la librería Libao, necesaria para el funcionamiento del servidos, si no la tenemos instalada.

yum install libaio

4/ Ahora ya podemos proceder a instalar el servidor MySQL. Ejecutando:

rpm -ivh MySQL-server-5.6.16-1.el6.x86_64.rpm

Si todo ha ido correctamente cuando termine podemos encontrar nuesto fichero de configuración en /usr/my.cnf y el password de root por defecto puede encontrarse en el archivo /root/.mysql_secret.

5/ Se instalan los paquetes restantes.

    rpm -ivh MySQL-shared-compat-5.6.16-1.el6.x86_64.rpm
    rpm -ivh MySQL-client-5.6.16-1.el6.x86_64.rpm

6/ Ya podemos iniciar el servicio con: service mysql start
Para loguearnos: mysql -uroot -p (utilizamos la password que hay en /root/.mysql_secret)
A continuación, podemos cambiar la password:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MYPASSWORDSECRETO');

Categorias

Linkedin