Configuración de MySQL
En esta presentación aprenderás acerca de la configuración de MySQL, incluyendo la dirección del servidor, directorio de datos, usuarios y motores de almacenamiento.

by Enrique Serrano Lendines

Acerca del Servidor de Base de Datos (Máquina Virtual del Servidor SGBD (192.168.8.58))
Paso 1: Instalación de MySQL
  • Actualiza el índice del paquete.
sudo apt update
  • Instala el servidor MySQL.
sudo apt install mysql-server
  • Inicia el servicio MySQL.
sudo service mysql start
  • Habilita MySQL para que se inicie en el arranque.
sudo systemctl enable mysql
  • Abre la terminal y escribe el siguiente comando para entrar al servidor MySQL:
Ejecutar: sudo mysql -u root -p
  • Te pedirá la contraseña de root.
Paso 2: Directorio de Almacenamiento
  • Crea un directorio en el servidor para almacenar todas las bases de datos.
CREATE DATABASE IF NOT EXISTS EnriqueBD;
  • Este comando verifica si EnriqueBD ya existe, y si no, lo crea.
Paso 3: Creación de Usuarios
  • Vamos a crear usuarios que podrán acceder a la base de datos.
  • Ejecutar:
CREATE USER 'web1'@'%' IDENTIFIED BY 'passwd'; CREATE USER 'web2'@'%' IDENTIFIED BY 'passwd'; CREATE USER 'web3'@'%' IDENTIFIED BY 'passwd'; CREATE USER 'usuario1'@'%' IDENTIFIED BY 'passwd'; CREATE USER 'usuario2'@'%' IDENTIFIED BY 'passwd';
  • Vamos a asignar los permisos necesarios a los usuarios creados anteriormente.
  • Ejecutar:
GRANT ALL PRIVILEGES ON EnriqueBD.* TO 'web1'@'%'; GRANT ALL PRIVILEGES ON EnriqueBD.* TO 'web2'@'%'; GRANT ALL PRIVILEGES ON EnriqueBD.* TO 'web3'@'%'; GRANT ALL PRIVILEGES ON EnriqueBD.* TO 'usuario1'@'%'; GRANT ALL PRIVILEGES ON EnriqueBD.* TO 'usuario2'@'%'; FLUSH PRIVILEGES;
Paso 4: Restringir Acceso de Root
  • Configura el servidor para restringir el acceso del usuario root y mejorar la seguridad.
DROP USER 'root'@'localhost';
Configurar directorio de almacenamiento

1

Directorio inicial:
  • Verificar la ubicación actual del directorio de datos:
mysql -uroot -p
  • Dentro de MySQL, ejecuta:
select @@datadir;
  • Ya por defecto en mysql esta InnoDB por defecto:

2

Crear directorio nuevo:
  • Ahora crea el nuevo directorio donde quieres almacenar la bd:
select @@datadir;

3

Pasar archivos:
  • Copiar los archivos del directorio de datos actual a la nueva ubicación:
sudo cp -rp /var/lib/mysql/. /data/db/mysql/

4

Asignar permisos:
  • Copiar los permisos del directorio original al nuevo directorio:
sudo chmod --reference=/var/lib/mysql /data/db/mysql sudo chown --reference=/var/lib/mysql /data/db/mysql

5

Editar el perfil de AppArmor para MySQL:
  • Asegúrate de que el perfil de AppArmor permita acceder a la nueva ubicación del directorio de datos.
sudo nano /etc/apparmor.d/usr.sbin.mysqld

6

Reflejar nueva ubicación
  • Editar el archivo de configuración de MySQL para reflejar la nueva ubicación del directorio de datos:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  • Asegúrate de que la línea datadir en el archivo de configuración apunte a la nueva ubicación:
datadir=/data/db/mysql

7

Reiniciar el servicio de AppArmor:
sudo systemctl restart apparmor.service

8

Reiniciar el servicio de MySQL:
sudo systemctl restart mysql.service
Configuración del Motor de Almacenamiento
Motor por Defecto
Configura el motor de almacenamiento por defecto para las nuevas tablas creadas en el servidor.
  • Editar:
nano /etc/mysql/mysql.conf.d/mysqld.cnf #Insertar [mysqld] default-storage-engine=InnoDB
  • Reiniciamos el servicio:
systemctl restart mysql.service
  • Ya por defecto en mysql esta InnoDB por defecto:
Creación de Tablas
Tabla Productos
Crea la tabla "productos" utilizando el motor de almacenamiento MyISAM.
USE EnriqueBD; CREATE TABLE productos ( id INT PRIMARY KEY, nombre VARCHAR(255), descripcion TEXT, precio DECIMAL(10,2) ) ENGINE=MyISAM; INSERT INTO productos (id, nombre, descripcion, precio) VALUES (1, 'Producto1', 'Descripción del Producto1', 19.99);
Tabla Pedidos
Crea la tabla "pedidos" utilizando el motor de almacenamiento MyISAM.
CREATE TABLE pedidos ( id INT PRIMARY KEY, fecha_pedido DATE, cliente VARCHAR(255), total_pedido DECIMAL(10,2) ) ENGINE=MyISAM;
Tabla Línea de Pedidos
Crea la tabla "lineaPedidos" utilizando el motor de almacenamiento InnoDB.
CREATE TABLE lineaPedidos ( id INT PRIMARY KEY, id_pedido INT, id_producto INT, cantidad INT ) ENGINE=InnoDB;
Máquina Virtual del Servidor Web (192.168.8.78)

1

Paso 1: Instalación del Cliente MySQL
  • Instalamos el cliente MySQL en la máquina virtual del servidor web para poder acceder a la base de datos.
sudo apt-get install mysql-client
Error uploading image.

2

Paso 2: Conexión a la Base de Datos
  • Establecemos una conexión desde el servidor web a la base de datos del servidor de base de datos.
sudo apt-get install mysql-client
  • Ingresamos la contraseña cuando se te solicite.

3

Paso 3: Verificación de Conexión
Verificamos que la conexión entre el servidor web y la base de datos esté funcionando correctamente.
SHOW DATABASES;

4

Paso3: Ejecución de Consultas
USE EnriqueBD; SELECT * FROM productos;
Conclusiones
Versatilidad
MySQL ofrece una amplia gama de opciones de configuración para adaptarse a tus necesidades específicas.
Rendimiento
El uso de diferentes motores de almacenamiento permite optimizar el rendimiento de tu base de datos.
Seguridad
Restringe el acceso y asigna privilegios adecuados para mantener tu base de datos a salvo.
Fiabilidad
Con el respaldo de una comunidad sólida y abundante documentación, MySQL es una opción confiable para tus necesidades de base de datos.
Made with Gamma