Trabajando con MySQL en PHP

MySQL es un RDBMS de código abierto que existe desde hace más de 20 años. Originalmente desarrollado y propiedad de la compañía sueca MySQL AB, ahora es propiedad de Oracle Corporation.

Algunas de las fortalezas clave de MySQL pueden resumirse de la siguiente manera:

  • Multiplataforma, se ejecuta en el servidor
  • Se puede usar para aplicaciones de escritorio y web
  • Rápido, confiable y fácil de usar.
  • Bueno para aplicaciones pequeñas y grandes.
  • Utiliza SQL estándar
  • Admite el almacenamiento en caché de consultas
  • Soporta Unicode
  • Cumplimiento de ACID cuando se usa InnoDB
  • Transacciones al usar InnoDB

Instalar MySQL

Suponiendo que estamos utilizando la nueva instalación de Ubuntu 16.10 (Yakkety Yak), los siguientes pasos describen cómo podemos configurar MySQL:

1. Para instalar MySQL, ejecutamos los siguientes comandos de consola:

sudo apt-get update
sudo apt-get -y install mysql-server

2. El proceso de instalación activa una interfaz GUI de consola que nos pide que ingresemos una contraseña de usuario root:

La contraseña proporcionada debe repetirse para fines de confirmación:

4. Una vez realizada la instalación, podemos ejecutar el siguiente comando mysql –version para confirmar si el servidor MySQL está funcionando:

root@vultr:~# mysql --version
mysql Ver 14.14 Distrib 5.7.17, for Linux (x86_64) using EditLine
wrapper

5. Una vez que el servidor se está ejecutando, necesitamos asegurar la instalación. Esto se realiza ejecutando el siguiente comando:

sudo mysql_secure_installation

El proceso de instalación segura desencadena un shell interactivo con varias indicaciones, solicitando la siguiente información:

  • Ingrese la contraseña para el usuario root:
  • ¿Desea configurar el complemento VALIDATE PASSWORD?
  • Ingrese 0 = LOW, 1 = MEDIUM y 2 = STRONG:
  • Nueva contraseña:
  • Re-ingrese nueva contraseña:
  • ¿Eliminar usuarios anónimos?
  • ¿No permitir el inicio de sesión root de forma remota?
  • ¿Eliminar la base de datos de prueba y acceder a ella?
  • ¿Recargar tablas de privilegios ahora?

La siguiente captura de pantalla muestra este proceso:

7. Una vez que se realiza el proceso de instalación segura, podemos seguir adelante y conectarnos a MySQL usando la herramienta de consola mysql, de la siguiente manera:

// INSECURE WAY (bare passwords in a command)
mysql -uroot -p'mL08e!Tq'
mysql --user=root --password='mL08e!Tq'
// SECURE WAY (triggers "enter password" prompt)
mysql -uroot -p
mysql --user=root --password

Observe el uso del carácter de comillas simples (‘) alrededor de la contraseña. Si bien normalmente podríamos usar «o ‘comillas, el! Char utilizado en la contraseña nos obliga a usar’. Sin ajustar la contraseña en una sola comilla, en este caso, veremos un error como! Tq: evento no encontrado. Esto se debe a que el signo de exclamación (!) Es parte de la expansión del historial en bash. Para usarlo como parte de la contraseña, necesitamos encerrarlo entre comillas simples. Además, nuestras contraseñas pueden contener los caracteres ‘ o «. Para escapar de estas comillas en la contraseña, podemos usar una barra diagonal inversa () o encerrar todo el argumento en el estilo opuesto de comillas. Sin embargo, la forma más sencilla y segura de evitar los caracteres de contraseña extraños es evitar asignar el valor de contraseña con los argumentos de contraseña -p o -, y proporcionar la contraseña a través de la solicitud Introducir contraseña:
Esto debería darnos el siguiente resultado:

Configurar datos de muestra

Antes de pasar a consultar MySQL, avancemos y configuremos algunos datos de muestra.
MySQL proporciona una base de datos de muestra llamada Sakila, que podemos descargar del sitio oficial de MySQL, de la siguiente manera:

cd ~
wget http://downloads.mysql.com/docs/sakila-db.tar.gz
tar -xzf sakila-db.tar.gz
cd sakila-db/

Una vez descargado y desempaquetado, esto debería proporcionarnos los siguientes tres archivos:

En el futuro, necesitamos ver cómo podemos importar sakila-chema.sql y sakiladata.sql. Afortunadamente, MySQL proporciona varias formas de hacer esto. Un vistazo rápido al archivo sakilaschema.sql muestra las siguientes entradas en la parte superior del archivo:

DROP SCHEMA IF EXISTS sakila;
CREATE SCHEMA sakila;
USE sakila;

Esto significa que el archivo sakila-schema.sql creará un esquema (base de datos) para nosotros, y lo configurará como la base de datos utilizada actualmente. Es importante comprender esto, ya que no todos los archivos .sql / backup tendrán esto, y nos veremos obligados a hacer esta parte manualmente.
Sabiendo cómo sakila-schema.sql maneja todo lo que necesitamos para importarlo, los siguientes comandos muestran tres enfoques diferentes que podemos usar:

// Either this command
mysql -uroot -p < sakila-schema.sql
// Either this command
mysql -uroot -p -e "SOURCE sakila-schema.sql"

El segundo comando usa el argumento -e (–execute) para pasar instrucciones SQL al servidor. Podríamos haber utilizado fácilmente la herramienta mysql de forma interactiva y luego ejecutar SOURCE sakila-schema.sql dentro de ella. Con el esquema en su lugar, podemos seguir adelante e importar los datos reales:

// Either this command
mysql -uroot -p < sakila-data.sql
// Either this command
mysql -uroot -p -e "SOURCE sakila-data.sql"

Si ahora utilizamos la herramienta mysql de forma interactiva, podemos verificar si la base de datos se ha importado correctamente:

show databases;
use sakila;
show tables;

Esto debería darnos el siguiente resultado:

Echa un vistazo a https://dev.mysql.com/doc/sakila/en/ para más información sobre la base de datos de muestra Sakila.

Comparte