Ver índice
Ficheros MariaDB y/o MySQL

        Ocultar índice  

   Índice de contenidos
   Instalación en Windows
   Instalación en Ubuntu
   Servidores seguros
   Páginas dinámicas
   Sintaxis básica
   Operaciones
   Arrays
   Formatos de presentación
   Operadores
   Bucles
   Extraer y ord. información
   Funciones
   Ficheros externos
   Imágenes dinámicas
   Gestión de directorios
   Cookies y sesiones
   Clases y objetos
   Ficheros en formato PDF
   Bases de datos MySQL
   PHP y XML
   PDO - Bases SQLite / MySQL
   MySQL a traves de misqli
   Algo de JavaScript y AJAX


Los servidores de bases de datos MariaDB y MySQL

Una de las opciones más interesantes de PHP es la posibilidad de gestionar bases de datos alojadas en equipos remotos. Existen multitud de aplicaciones de servidor de bases de datos (FilePro, dBase, DBM, Microsoft SQL, PostgreSQL, mSQL, InterBase, MariaDB y MySQL, entre otros) y PHP dispone de recursos para el manejo de todas las mencionadas.

Hemos optado por MySQL atendiendo a su disponibilidad en el servidor que aloja este dominio. MySQL utiliza el lenguaje SQL (acrónimo de Structured Query Language, es decir, Lenguaje estructurado de consultas) que hasta el momento ha sido contemplado como un estandar para gestión de bases de datos. Falta por ver cual será la evolución futura en cuanto a gratuidad y servicio. El cambio de propietarios ha generado una cierta inquietud en ese sentido en muchos de los mentideros de la red. Sea cual fuere esa evolución futura los scripts desarrollados para MySQL son perfectamente compatibles con MariaDB, servidor de bases de datos desarrollado dentro de Open Database Alliance, un consorcio neutral diseñado para convertirse en el centro de la industria de la base de datos de código abierto.

  ¡Cuidado!  

Todos los ejemplos que incluimos aquí funcionan sin necesidad de hacer ninguna modificación en servidores de bases de datos MariaDB.

Bases de datos y tablas

Si es este tu primer contacto con el mundo de las bases de datos, quizá sea importante conocer su argot ya que en adelante tendremos que referirnos a tablas, campos, registros e índices y quizá no esté de más repasar un poco esas ideas.

Pensemos en la base de datos como un armario archivador –directorio– que alberga una serie de cajonestablas– en los que se permite almacenar únicamente documentos de idéntico tipo –registros–. Imaginemos, por poner dos ejemplos, que las solicitudes de matrícula de un centro tienen un formato unificado y se guardan mismo cajón y que, con idéntico criterio, se haga lo mismo con los expedientes de los profesores .

Cada uno de los hipotéticos formularios de los supuestos anteriores tendría las mismas casillascampos–, con la única diferencia de que los datos contenidos en esos campos –de igual forma, dimensión y tamaño en todos los registros– serían lo único que diferenciaría realmente las solicitudes de matrícula de dos alumnos.

Una oficina bien organizada no se conformaría con esto. A medida que crezca el número de solicitudes de los alumnos irán surgiendo las dificultades para localizar un registro (la ficha de un alumno). Sería una excelente idea organizar el archivo de tal forma que esa localización resulte lo más fácil y rápida posible. Una clasificación alfabética –índice alfabético– o por fecha de nacimiento –otro índice– podría facilitar sustancialmente las cosas. Las bases de datos MySQL disponen de todos esos rescursos.

Cuando hemos instalado MySQL en el directorio C:/ServidoresLocales/mysql y durante el proceso de instalación se creó un subdirectorio llamado data (C:/ServidoresLocales/mysql/data) destinado a albergar todas las bases de datos de nuestro servidor. En el caso de Ubuntu ese directorio es /var/lib/mysql. Cada una de las bases de datos que albergue el servidor estará contenida en un subdirectorio cuyo nombre coincide con el de la propia base de datos.

Tanto en el caso de Windows como en el de Ubuntu, el instalador crea una base de datos llamada mysql y, por tanto un subdirectorio para contenerla. En Windows será C:/ServidoresLocales/mysql/data/mysql mientras que en Ubuntu se trata de /var/lib/mysql/mysql.

Si visualizamos los contenidos de ese subdirectorio podremos ver que mysql contiene una serie de ficheros en los que un mismo nombre se repite con tres extensiones diferentes: .frm, .MYD y .MYI.

El directorio C:/ServidoresLocales/data
Las carpetas del subdirectorio data corresponden a cada una de las bases de datos que contiene
Cada una de las tablas que contiene una base de datos requiere tres ficheros de extensiones .frm, MYD y MYI

Cada fichero con extensión .frm contienen la estructura de una tabla. Es en alguna medida una especie de formulario en blanco o formulario tipo. Los ficheros que tienen extensión MYD contiene los datos y aquellos que acaban .MYI contienen los índices de cada tabla que cumplen una función idéntica a los índices de los libros. Por medio de ellos resulta mucho más rápido encontrar una determinada información y al igual que ocurre con los libros –índice general, onomástico, etcétera– pueden ser varios y de tipos distintos.

La base de datos mysql –creada durante la instalación– incluye una serie de tablas necesarias para la gestión del servidor. Una de ellas (puedes verla en la imagen) es la tabla user –la más importante para nuestros fines– que contiene información relativa a los usuarios del servidor de base de datos tales como: permisos y restricciones de acceso, nombres usuarios, contraseñas, etcétera.

  ¡Cuidado!  

El uso de los tres ficheros anteriores, es condición de las tablas tipo MyISAM .Otros tipos, que veremos en temas posteriores, tales como InnoDB almacenan la información con una estructura diferente.

¿Cómo empezar con las bases de datos?

Igual que en el caso del ejemplo de la secretaría, lo razonable será empezar creando nuestros armarios –bases de datos– para que posteriormente podamos ir diseñando los documentos –los campos y la estructura– de cada uno de los tipos de impreso (tablas) que vayamos a manejar.

En nuestros ejemplos nos referiremo siempre a una base de datos –a la que llamaremos ejemplos– y un usuario de nombre pepe con contraseña pepa que coinciden con el usuario creado por nuestro autoinstalador y por el referido en los procesos de instalación autónoma y configuración tanto del servidor MariaDB como de MySQL.

La tabla user

Activemos nuestro servidor MySQL de la forma que se indica aquí si tu sistema operativo es Linux Ubuntu. Si se trata de Windows puedes ver aquí la forma de gestionarlo.

Una vez activos el servidor MySQL y Apache ya podemos utilizar phpMyAdmin. Lo habíamos instalado en un subdirectorio de htdocs llamado phpmyadmin. Así que accedamos a través de la dirección: http://localhost/phpmyadmin/ y se nos abrirá una página como la que sigue:

phpMyAdmin
Elegiremos la base de datos mysql. Al seleccionar mysql en el menú de la izquierda y pulsar sobre mysql (en negro en la parte superior de la lista de tablas) aparecerá la lista que está a la derecha de esta imagen.

Allí vemos la tabla user y un enlace activo que dice Examinar. Si pulsamos sobre él, podremos ver un contenido similar a este que vemos aquí debajo.


Como ves, hay cuatro usuarios y dos de ellos como nombre root y ninguna contraseña han sido creados automáticamente durante la instalación. El cuarto de ellos –el usuario pepe– es el que hemos creado durante el proceso de instalación

Esta configuración es insegura ya que con los nombres de usuario por defecto –root– y sin contraseña cualquiera podría acceder y manipular las bases de datos. Más adelante podremos borrar esos usuarios pero, por el momento, dejémoslos así y añadamos un nuevo usuario.

Si pulsamos la opción editar (el icono en forma de lápiz que hay a la derecha de la casilla de verificación del usuario sin nombre se nos abrirá una página como esta:.


Escribamos localhost en el campo Host, jose en el campo User, josefa en el campo Password y marquemos todas las opciones –una lista bastante larga por cierto– como YES (Y) y –muy importante– seleccionemos la función PASSWORD para el campo del mismo nombre.

Una vez realizado el proceso anterior deberá quedarnos como aparece en la imagen. Pulsaremos en el botón Continúe que hay al final de la página y habremos dado de alta al usuario jose con todos los privilegios para gestionar las bases de datos.

Si regresamos de nuevo a Examinar veremos que ya ha sido incluido el nuevo usuario y que el campo contraseña aparece encriptado como consecuencia de haber aplicado la función PASSWORD para garantizar la privacidad del usuario. MySQL requiere esta encriptación.

Respecto a los YES, la explicación es sencilla. Esas opciones permiten habilitar permisos para determinadas operaciones dentro de las bases de datos y lo único que hemos hecho ha sido conceder todas la facultades de gestión al usuario pepe.

Creación de un fichero INCLUDE

En los scripts PHP, con los que manejemos las bases de datos, vamos a necesitar insertar continuamente: nombre del servidor, nombre de usuario y contraseña.

Tanto la comodidad como la privacidad que hemos mencionado en páginas anteriores aconsejan guardar los datos de usuario en lugar seguro. Así pues lo aconsejable será crear un fichero –llamémosle mysql.inc.php– idéntico al que tenemos aquí debajo,(podemos copiar y pegar) y que podríamos guardar en un directorio seguro tal como habíamos comentado aquí.

<?php
$mysql_server="localhost";
$mysql_login="pepe";
$mysql_pass="pepa";
?>