Herramientas Informaticas

Etiqueta: MariaDB Página 1 de 2

🚀 Cómo Instalar Apache, PHP, MariaDB y Certbot en Deepin 23 (Servidor LAMP + HTTPS)

Entrada fija


🎯 Objetivo

En esta guía aprenderás a configurar un servidor web local con Apache, PHP y MariaDB en Deepin 23 y utilizar un alias personalizado como tusitio.localhost para tus desarrollos. Ideal para entornos de prueba de proyectos como Laravel, WordPress, etc.

1. 🔄 Actualizar el sistema

sudo apt update && sudo apt upgrade -y

2. 🌐 Instalar Apache

sudo apt install apache2 -y
sudo systemctl status apache2

Verifica accediendo a http://localhost.

3. 🐘 Instalar PHP y módulos necesarios

sudo apt install php libapache2-mod-php php-mysql php-cli php-xml php-curl php-mbstring php-zip php-gd -y
php -v

4. 🛢️ Instalar MariaDB

sudo apt install mariadb-server mariadb-client -y
sudo systemctl status mariadb

5. 🔐 Asegurar MariaDB

sudo mariadb
ALTER USER 'root'@'localhost' IDENTIFIED BY 'TuContraseñaSegura';
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host!='localhost';
DROP DATABASE IF EXISTS test;
FLUSH PRIVILEGES;
EXIT;

6. 🛠️ Crear VirtualHost local tusitio.localhost

sudo mkdir -p /var/www/tusitio
sudo nano /etc/apache2/sites-available/tusitio.conf

Pega el siguiente contenido:

<VirtualHost *:80>
    ServerAdmin admin@localhost
    ServerName tusitio.localhost
    DocumentRoot /var/www/tusitio

    <Directory /var/www/tusitio>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/tusitio_error.log
    CustomLog ${APACHE_LOG_DIR}/tusitio_access.log combined
</VirtualHost>

Habilitar el sitio y reiniciar Apache:

sudo a2ensite tusitio.conf
sudo systemctl reload apache2

7. 📝 Añadir alias en /etc/hosts

sudo nano /etc/hosts

Agrega al final del archivo:

127.0.0.1   tusitio.localhost

8. 🚀 Probar

Crea un archivo de prueba:

echo "<?php echo 'Hola desde tusitio.localhost'; ?>" | sudo tee /var/www/tusitio/index.php

Abre en el navegador: http://tusitio.localhost

✅ Resultado

ComponenteEstado
ApacheActivo
PHPFuncional
MariaDBProtegida
Alias localtusitio.localhost operativo

📌 Conclusión

Ya tienes un entorno de desarrollo web local usando un alias personalizado (tusitio.localhost) ideal para trabajar de forma organizada, simulando servidores reales. Puedes replicar este proceso para todos tus proyectos locales.

Instalador Completo: Inno Setup + MariaDB 11.5

Entrada fija

Subscribe to continue reading

Subscribe to get access to the rest of this post and other subscriber-only content.

CURSO MARIADB -PROCEDIMIENTOS ALMACENADOS #10

Un procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento) almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.

Los procedimientos pueden ser ventajosos: cuando una base de datos es manipulada desde muchos programas externos. Al incluir la lógica de la aplicación en la base de datos utilizando procedimientos almacenados, la necesidad de embeber la misma lógica en todos los programas que acceden a los datos es reducida. Esto puede simplificar la creación y, particularmente, el mantenimiento de los programas involucrados.

Podemos ver un claro ejemplo de estos procedimientos cuando requerimos realizar una misma operación en un servidor dentro de algunas o todas las bases de datos y a la vez dentro de todas o algunas de las tablas de las bases de datos del mismo. Para ello podemos utilizar a los Procedimientos almacenados auto creables que es una forma de generar ciclos redundantes a través de los procedimientos almacenados.

Hoy en día existe un debate si se debe de usar procedimientos almacenados, en mi opinión digo que si, hay pros y contras en usar procedimientos almacenados, pero al final es mejor mejor practica usarlos ya que funcionara mas eficientemente siempre y cuando se haga bien, también si se da el caso de que sea una aplicación de escritorio la mayor parte de las veces no se necesitara recompilar y actualizar el ejecutable, si no que solo se tendrá que modificar la base de datos .

Bien como prueba vamos a hacer un procedimiento almacenado básico, tal procedimiento va a insertar en la tabla clientes y luego ejecutara una consulta.

CREATE PROCEDURE `SPR_InsertaCliente`(IN `strNombre` VARCHAR(256)
				    , IN `strRFC` VARCHAR(15)
                                    , IN `strDireccion` VARCHAR(15)) 

BEGIN 

	insert into clientes(nombres 
			    ,RFC
			    ,direccion ) 
			
		    values( strNombre 
			    ,strRFC
			    ,strDireccion ); 

		select * from clientes; 
END;

Ahora mandamos llamar el procedimiento almacenado que hara 2 cosas, una es insertar

SET
    @p0 = 'Cesar';
SET
    @p1 = 'XXXA';
SET
    @p2 = 'Conocido';
CALL
    `SPR_InsertaCliente`(@p0, @p1, @p2);

O simplemente lo podemos invocar de la siguiente manera

CALL SPR_InsertaCliente('Cesar', 'XXXA', 'Conocido');

El resultado será el siguiente



id	nombres	RFC	direccion	
1	Julio	xxx	conocido	
2	kakaroto	xxe	vegita	
3	Cesar	XXXA	Conocido	
4	Cesar	XXXA	Conocido	
5	Cesar	XXXA	Conocido	

Nos arroja varias ya que hemos ejecutado varias veces el procedimiento

Vídeo Demostrativo

CURSO MARIADB 10 – VISTAS

Las vistas en MariaDB o MySQL son tablas virtuales que no almacenan ningún dato sino que es el resultado de la consulta de varias tablas o una según se allá hecho la consulta, por ejemplo, tenemos la tabla clientes y la tabla ventas, en ventas aparte de los demás campos propios de una venta tenemos el idCliente que se relaciona con el campo id de la tabla cliente y de allí podemos tomar el nombre, por ejemplo generamos el siguiente guion para obtener todos los datos.

SELECT a.id as idVenta
	, a.idCliente
    , a.Concepto
    , a.total
    , b.nombres as nombreCliente
    , b.RFC as RFCCliente
    , b.direccion	as direccion
FROM ventas a
	,clientes b 
   where idCliente=b.id

Nos dará como resultado lo siguiente

idVenta	idCliente	Concepto	total	nombreCliente	RFCCliente	direccion	
1	1	venta de equipo de computo	10000.00	Julio	xxx	conocido	
2	2	Venta de semillas del hermitaño	5.00	kakaroto	xxe	vegita	

Bien en base a esa consulta podemos crear la vista

CREATE
 VIEW `vw_vistaVenta`
 AS SELECT a.id as idVenta
    , a.idCliente
    , a.Concepto
    , a.total
    , b.nombres as nombreCliente
    , b.RFC as RFCCliente
    , b.direccion   as direccion
FROM ventas a
    ,clientes b 
   where idCliente=b.id;

Ahora solo en lugar de escribir todo el código que pusimos al principio solo pondremos lo siguiente

select * from vw_vistaVenta;

Y nos arroja el mismo resultado sin tanto código

idVenta	idCliente	Concepto	total	nombreCliente	RFCCliente	direccion	
1	1	venta de equipo de computo	10000.00	Julio	xxx	conocido	
2	2	Venta de semillas del hermitaño	5.00	kakaroto	xxe	vegita	

CURSO MARIADB 10 – RESPALDOS AUTOMATICOS DIARIOS #8

Bien ya explicamos como generar respaldos manuales, pero lo importante es que se generen automáticamente sin tener que intervenir nosotros, también es importante comprimir el archivo ya que conforme pasa el tiempo y se ingresan datos la base de datos crece en tamaño, lo bueno de comprimirla es que baja su tamaño hasta 10 veces .

Bien primero para el caso de Windows vamos a descargar un compresor para Windows que se llama XZ puede descargarlo desde source forge XZ Utils for Windows download | SourceForge.net

Copiamos el archivo en c:\xampp\mysql\bin

Quedaría el ejecutable en esa carpeta

Ahora abrimos el bloc de notas y metemos el siguiente texto

cd c:\xampp\mysql\bin
mysqldump --opt --events --routines --triggers --default-character-set=utf8 -u root pos | xz > c:\respaldo\respaldo.sql.xz

Lo guardamos en la carpeta respaldos o en la carpeta de su preferencia, lo guardamos con extensión .bat o

Vemos como guardo el archivo respaldo.sql.xz
A abrir el archivo comprimido y ver el archivo SQL nos debe mostrar algo similar a la imagen

Ahora sigue para programar para que se ejecute automáticamente

Abrimos el programador de tareas ya esta instalado en Windows Solo nos vamos al Inicio y escribimos programador de tareas, luego vamos al menú acción y le damos clic en Crear Tarea básica
Le ponemos el nombre de la tarea programada y le damos siguiente
Le ponemos cada tanto tiempo se va ejecutar el archivo .bat,le damos siguiente
Escogemos cada tanto tiempo se va ejecutar y a que hora
Escogemos que programa o script se va a ejecutar

Y listo nuestro programa se estará ejecutando diariamente si la PC o Servidor se encuentra encendido

CURSO EXPRESS DE BASE DE DATOS MARIADB 10

Ya hemos terminado el tutorial de programación básica en Visual Basic 2022 Community, ahora vamos a ver una ligera introducción a las base de datos.

En esta serie de tutoriales vamos a dar un curso sobre el gestor de base de datos de código abierto mas extendido y que viene siendo un estándar en el desarrollo de sistemas web ya que lo van encontrar en la mayoría de los hosting Web y es MariaDB

CURSO MARIADB INTEGRIDAD REFERENCIAL #6

La integridad referencial es propiedad de la base de datos. La misma significa que la clave externa de una tabla de referencia siempre debe aludir a una fila válida de la tabla a la que se haga referencia. La integridad referencial garantiza que la relación entre dos tablas permanezca sincronizada durante las operaciones de actualización y eliminación.

Todas las bases de datos relacionales gozan de esta propiedad gracias a que el software gestor de base de datos vela por su cumplimiento. En cambio, las bases de datos jerárquicas requieren que los programadores se aseguren de mantener tal propiedad en sus programas.

Ejemplo: Cómo funciona

Supongamos una base de datos con las entidades Persona y Factura. Toda factura corresponde a una persona y solamente una. Implica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos y relaciones mal resueltas.

Supongamos que una persona se identifica por su atributo RFC(Registro Federal del Contribuyente). También tendrá otros atributos como el nombre y la dirección. La entidad Factura debe tener un atributo RFC_cliente que identifique a quién pertenece la factura.

Por sentido común es evidente que todo valor de RFC Cliente debe corresponder con algún valor existente del atributo RFC de la entidad Persona. Esta es la idea intuitiva de la integridad referencial.

Por ejemplo vamos a relacionar un id de cliente con la información de la tabla factura

Creamos la tabla cliente

CREATE TABLE `clientes` ( `id` INT NOT NULL AUTO_INCREMENT , `nombres` VARCHAR(128) NULL , `RFC` VARCHAR(16) NULL , `direccion` VARCHAR(16) NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;

Luego Creamos la tabla ventas

CREATE TABLE `ventas` ( `id` INT NOT NULL AUTO_INCREMENT , `idCliente` INT NULL , `Concepto` VARCHAR(128) NULL , `total` DECIMAL(18,2) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;

Agregamos la restricción para que al eliminar un cliente no permita eliminar si este cliente ya tiene una venta

ALTER TABLE `ventas` ADD CONSTRAINT `rstCliente` FOREIGN KEY (`idCliente`) REFERENCES `clientes`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;

Insertamos datos en la tabla cliente

INSERT INTO `clientes` (`id`, `nombres`, `RFC`, `direccion`) VALUES (NULL, 'Julio', 'xxx', 'conocido'), (NULL, 'kakaroto', 'xxe', 'vegita');

Insertamos en la tabla ventas

INSERT INTO `ventas` (`id`, `idCliente`, `Concepto`, `total`) VALUES (NULL, '1', 'venta de equipo de computo', '10000'), (NULL, '2', 'Venta de semillas del hermitaño', '5')

Ahora intentamos eliminar el cliente kakaroto

delete from clientes where id=2

Si hicimos las cosas bien la base de datos se protegerá y no se podrá eliminar el cliente por la restricción de llave foránea, saldrá el siguiente mensaje

#1451 - Cannot delete or update a parent row: a foreign key constraint fails (`pos`.`ventas`, CONSTRAINT `rstCliente` FOREIGN KEY (`idCliente`) REFERENCES `clientes` (`id`))

CURSO MARIADB – CREAR BASE DE DATOS, CREAR TABLA E INSERSIÓN Y MODIFICIACION DE DATOS #4

Y ya empezamos con lo cotidiano, crear base de datos, crear tablas, insertar datos, modificar datos y además vemos como también se utiliza otra herramienta visual para el manejo de la base de datos que es PHPMYADMIN

Para crear una base de datos utilizamos el siguiente comando, le ponemos create database seguido del nombre seguido de la intercalación

CREATE DATABASE `pos` /*!40100 COLLATE 'utf8mb3_spanish2_ci' */

Ahora para crear tabla por ejemplo tabla perfiles de dos columnas id y descripción donde id va a ser primario y autoincrementadle

CREATE TABLE `perfiles` (
	`id` BIGINT NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(256) NOT NULL,
	PRIMARY KEY (`id`)
)
COLLATE='utf8mb3_spanish2_ci'

Ahora para insertar datos por ejemplo insertamos solo la descripción con el siguiente comando

INSERT INTO perfiles (descripcion) values ('Gerencia')

Podemos meter también manualmente el campo id

INSERT INTO perfiles (id,descripcion) VALUES ('3','')

Como se nos olvido poner la descripción del perfil vamos actualizar ese valor

UPDATE perfiles SET descripcion = 'CONTABILIDAD' WHERE id = 3

Si queremos eliminar el registro 3 simplemente escribimos el siguiente codigo

DELETE FROM perfiles WHERE id = 1
Video Demostrativo

Administradores Visuales de MariaDB/MySQL

Hemos visto en la publicación anterior como conectarnos a MariaDB por medio de la consola, que por cierto falto poner el puerto así que en la ultima publicación asi que realmente nos conectamos a la instancia del 3306.

Bien al grano, existen muchas herramientas de administración de base de datos MariaDB pero les mostrare las que mas he usado y sigo usando

Comandos Básicos de introducción MariaDB desde consola, Select Where

En este tutorial veremos algunos comandos básicos desde la consola y si ya se que se preguntan por que conectarnos por la consola de comandos en lugar de un GUI como puede ser Workbench HeidiSQL etc, es muy necesario sobre todo si eres programador ya que solo se usan comandos y créeme no es que vallas a usar la consola todo el tiempo pero si aprender los comandos en lugar de crear las tablas desde GUI se te va a dificultar mas, de hecho conforme pasa el tiempo y van creciendo las tablas en lo referente a columnas por la misma experiencia se les hará mas fácil manejarse con comandos.

Bien para conectarnos nos posicionamos en el directorio de instalación de mariaDB que es C:\Program Files\MariaDB 10.6\bin y para conectarnos usaremos el siguiente comando

Página 1 de 2

Creado con WordPress & Tema de Anders Norén