Archive for the 'mysql' Category

Repercusiones de la adquisión de MySQL por parte de Sun

Hace poco más de un mes que Sun y MySQL cerraron el acuerdo de compra por parte de los primeros.

Con esto Sun quiere entrar en el mercado de los gestores de bases de datos, y ya vende y compara el coste de una licencia MySQL Enterprise con las de Oracle.

De interés el artículo de Jonathan Swartz acerca de la adquisión de MySQL titulado Helping Dolphins Fly (Ayundando a volar a los delfines),  donde se anuncian “grandes noticias” y  de la repercursión en Sun de invertir miles de millones de dólares en la M de LAMP. Ian Murdock, creador de Debian, actualmente en la plantilla de Sun, se hace, también de la noticia sobre el anuncio de “big news” de la compra.

En lo que afecta a gente que utilizamos MySQL para nuestros proyectos, MySQL seguirá siendo libre, con esa doble licencia comercial y gratuita. Al menos eso espero…

Joolo.com - hosting gratuito 1 GB, php, MySQL, sin publicidad

Joolo.com ofrece, en su versión gratuita, hosting de 1 GB sin publicidad, con posibilidad de utilizar PHP y MySQL.

Más detallado:

  • Espacio: 1 GB
  • Ancho de banda: 10 GB
  • Sin publicidad
  • No subdominios
  • 1 cuenta FTP
  • PHP: versión 4
  • 10 bases de datos MySQL
  • Curl
  • GD
  • phpMyAdmin
  • Foros
  • Estadísticas: AWstats

Vídeo sobre curso PHP y MySQL

Curso, en formato vídeo, sobre PHP y MySQL

Ver vídeo

Apuntes para trabajar con MySQL

Estos son algunas notas o apuntes que me sirven de referencia a la hora de trabajar con MySQL.

No pretendo que sean de uso básico, sino más bien de recordatorio cuando algo se olvida o no se recuerda exactamente su sintaxis.

Directorios habituales

  • Programa: /usr/local/var/
  • Datos: /usrl/local/mysql/data/ (o /var/lib/mysql/)
  • mysqladmin variables; => Muestra variables y directorios.

Permiso base de datos

  • mysql -h servidor -u usuario -p => Posteriormente nos pedirá el password. Conectar con el servidor (ip o nombre) a través del usuario.
  • GRANT ALL ON basedatos TO usuario@localhost IDENTIFIED BY “password”; => Dar permisos a usuario con el password indicado sobre la base de datos indicada. Acceso solo desde localhost (normalmente es suficiente ya que si lo queremos para scripts PHP o similar se ejecutarán, seguramente en localhost).
  • GRANT ALL ON basedatos TO usuario@% IDENTIFIED BY “password”; => Idem a anterior, pero % indica que se podrá conectar desde cualquier IP.
  • GRANT ALL ON basedatos.* TO usuario@localhost IDENTIFIED BY “password”; => Dar permiso al usuario sobre las tablas de la base de datos.
  • mysqladmin -u root password “nuevopassword”; => Asignar contraseña a root.

Trabajar con bases de datos

  • mysql basedatos <crear-basedatos.sql; => Crear una base de datos a través de un fichero.
  • mysqlshow; => Lista de bases de datos del servidor.
  • mysqlshow basedatos; => Lista de tablas de la base de datos.
  • mysqshow tabla; => Lista de campos (estructura) de la tabla.
  • create database basedatos; => Crea una base de datos.
  • show databases; => Muestra las bases de datos para el usuario actual.

Tipos de campos

  • Enteros: TINYURL (1 byte, -128…127), SMALLINT (2 bytes, -32768…32767), MEDIUMINT (3 bytes), INT (4 bytes), BIGINT (8 bytes).
  • Reales: FLOAT (4 bytes), DOUBLE (8 bytes).
  • Cadenas: CHAR (cadena de longitud fija, si no se usa se rellena con espacios), VARCHAR (cadena de longitud variable).
  • Fechas y horas: DATE (AAAA-MM-DD), TIME (hh:mm:ss), DATETIME (AAAA-MM-DD hh:mm:ss), TIMESTAMP (AAAAMMDDhhmmss).

Trabajo con tablas (SQL)

  • SELECT … ORDER BY … LIMIT 10,5; => Mostrar 5 registros a partir del registro 10.
  • SELECT COUNT(*) FROM tabla; => Mostrar cantidad de registros de una tabla.
  • SELECT COUNT(DISTINCT campo) FROM tabla; => Mostrar cantidad de valores diferentes de un campo en una tabla.
  • SELECT campo, COUNT(*) FROM tabla GROUP BY campo; => Mostrar un campo y la cantidad de veces que aparece en una tabla.
  • SELECT MONTH(fecha) as Mes, MONTHNAME(fecha) as Nombre, COUNT(*) AS Cantidad FROM tabla GROUP BY Nombre ORDER BY Mes; => Dado un campo llamado fecha, mostrar el número de mes, el nombre de mes (en inglés) y la cantidad de registros para dicho mes.
  • SELECT … FROM t1, t2 WHERE t1.id=t2.id; => Mostrar registros coincidentes de dos tablas.

Funciones

  • TO-DAYS(”1997-04-11″) => 729490. Nos devuelve el entero asociado a la fecha.
  • mysql_num_rows() => Cantidad de registros de una tabla.

Consejos y manuales sobre MySQL

Estos son algunos de los enlaces que os propongo de referencia para los que trabajeis con MySQL. Se habla de consejos a la hora de diseñar las tablas de la base base de datos, optimización a la hora de crear de consultas (básicamente desde PHP), y manuales de referencia.

  1. Manual de referencia de MySQL: Oficial, en español, formato PDF.
  2.  10 tips for optimizing MySQL queries: en inglés, recomendaciones para crear consultas.
  3. 10 tips for optimizing MySQL queries (that don’t suck): en inglés, post relacionado con el anterior.
  4. Compactar BBDD en MySQL desde VB.Net: en español, código para conectar y compactar (OPTIMIZE) una tabla utilizando VB.Net.
  5. Optimizando consultas en MySQL: en español. Comparación de diferentes consultas y rendimiento de ellas.

Instalación de Gallery 2.2.1 paso a paso

Gallery es un software desarrollado en PHP que utiliza una base de datos en MySQL para la creación y administración de galerías fotográficas.

En este post se va a indicar, detalladamente, los pasos para la instalación de dicho software.

Antes de comenzar una aclaración: los pasos que aquí se han dado son en un hosting contratado que sí dispone de servicio de php y mysql. En caso de querer montarlo en un servidor local, previamente habría que instalar un servidor web (por ejemplo Apache), php (más el módulo que conecta con el servidor web) y mysql.

Pasos antes de la instalación:

  • Descargar el software (Gallery 2.2.1 en este caso), y descomprimirlo.
  • Subirlo al hosting (o en el caso de servidor local dejarlo en el directorio correcto)

En nuestro caso:

Paso 0: Preparar la instalación y seleccionar idioma de instalación

  • Visitar la url: http://www.vrsansebastian.com/photos
  • Automáticamente nos llevará al directorio de instalación: http://www.vrsansebastian.com/photos/install/index.php
  • Seleccionaremos el idioma: Español (o cualquiera que quisiéramos)

instalación sofware gallery paso 1

Paso 1: Verificación de autenticidad

  • Se nos pide que subamos al servidor un fichero llamado login.txt con un código aleatorio para autentificar que somos los dueños de ese espacio. Este paso está bien por seguridad, sino cualquier persona nos podría instalar Gallery.
Autenticar
Para proceder con el proceso de instalación, necesitamos verificar que eres quien dices ser. El mejor modo de estar seguros es pedirte que hagas un pequeño cambio en el directorio de Gallery lo cual probará que tu tienes los permisos correctos. De modo que, nosotros vamos a pedirte que crees un nuevo archivo de texto llamado login.txt en el directorio photos de tu servidor web (que es el mismo directorio donde se encuentra main.php). Este archivo debe contener los siguientes caracteres generados aleatoriamente:
88d53657ca47c1ee59057bbdf683fd5d
       Para tu comodidad, hemos preparado para ti una versión correcta de login.txt.  Descargala y copiala en tu directorio photos y estará todo correcto.
Una vez que hayas subido el archivo, haz click a continuación para seguir.
crear fichero login.txt autentificacion
  • Subimos a través de un cliente ftp (elegido gFTP) dicho fichero al directorio de la instalación, /photos/ en nuestro caso.

subir fichero login.txt por ftp

  • Si tenemos suerte obtendremos el siguiente mensaje:
       ¡Autenticado con éxito!

gallery autenfificado con exito

  • El instalación verificará si nuestro servidor cumple con las características y requirimientos. Debería de mostrarnos “Exito” en todos los campos.

verificacion de requirimientos

Paso 3: Tipo de instalación

  • Seleccionaremos estándar, salvo que quisiéramos algo más complejo.

tipo de instalacion

Paso 4: Configuración del almacen

  • Nos va a pedir que creamos el directorio donde se van a guardar los datos. Por defecto es g2data, pero conviene cambiarlo por seguridad.

Gallery necesita un directorio donde almacenar tus imágenes. El directorio que escogimos por ti funcionará, pero su localización o nombre actual no provee la máxima seguridad. Puedes seleccionar un nuevo directorio fuera de la raíz de documentos o bien añadir una cadena de texto aleatoria al final del nombre del directorio (e.j. g2data_09a12bbe0f).

creando el almacen para las fotos

  • Dar permisos totales (777) al directorio recien creado. En el caso de gFTP es seleccionando CHMOD en el directorio.

Paso 5: Configuración de la base de datos

  • Necesitamos crear una base de datos MySQL y espeficar el modo de acceder a ella.

creacion de la base de datos

  • Necesitamos obtener el siguiente mensaje:
 Base de datos configurada con éxito.

base de datos creada

Paso 6: Configuración del Usuario Administrador

  • Aquí se nos pedirá el usuario, password, email y nombre del administrador de Gallery.

Configuración del administrador de Gallery

Paso 7: Escritura del fichero de configuración config.php

  • En dicho fichero se escribirán los datos de acceso y conexión, no debería darnos problemas.

escritura del fichero config.php

Paso 8: Instalación del núcleo de Gallery

  • Deberíamos de obtener un mensaje de éxito

Paso 9: Instalación de plugins

  • Aquí seleccionaremos los plugins que queramos instalar. Tiene muchos, ¿a qué sí?

plugins de gallery

  • Obtendremos un resultado como el siguiente:

resultado de la instalacion de plugins en gallery

Paso 10: Comprobación de seguridad

  • Efectúa un chequeo de seguridad, y muestra un mensaje diciendo que el config.php es seguro.
  • Nos da un par de enlaces para seguir verificando y securizando.

comprobacion de seguridad de la instalacion

Paso 11: Fin de la instalación

  • Ya hemos terminado. Tenemos un enlace para visitar la web construida.

fin de la instalacion

Mucha suerte, y espero que me comenteis como os ha ido.

Servidor de bases de datos MySQL gratuito

db4free.net ofrece hosting gratuito de bases de datos MySQL. Opción interesante si disponemos de lenguaje de programación tipo php, python, etc pero no disponemos de servicio de bases de datos MySQL.

Las condiciones de uso son las siguientes:

Conditions of use

In no event shall we, the db4free team, be liable to any party for direct, indirect, special, incidental, or consequential damages, including lost profits, arising out of the use of or the unavailiability of this host, its software, its services or its documentation even if the administrator has been advised of the possibility of such damage.

We specifically disclaim any warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The software and host provided hereunder is on an “as is” basis, and we have no obligations to provide maintenance, support, updates, enhancements, or modifications or continued availability of services. We are entitled to discontinue this service without notification and delete the databases irrevocably.

Users of db4free are not permitted to publish their access data as well as server specific data to third parties.

Exclusively the laws of the Republic of Austria apply to services relating to the db4free project.

We do not recommend you to use a db4free database for any critical data and for any critical purpose! Even though we - the people behind this project - are related to each other through a company, this is still a private and non commercial project. We refuse any warranty and liability!

The db4free Team does not take any liability for the contents of linked web pages.

We retain the right to modify this statement without notice.

Gmünd, Lower Austria, Austria
13 August 2005

Xampp para Linux

Desde la siguiente dirección web os podreis bajar el XAMPP para Linux y teneis también las instrucciones de instalación.

XAMPP: Servidor web apache + php +mysql + phpMyAdmin +…

Enlace: XAMPP para Linux