You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

7.6 KiB

title date draft categories tags
Instalación de MariaDB y PostgreSQL en Debian 2022-10-26T09:32:09+02:00 false
práctica
Administración de Bases de Datos
MySQL
apache
phpMyAdmin
Práctica 1 ABD

MariaDB

El paquete de MariaDB se encuentra en los repositorios de Debian, por lo que podemos instalarlo directamente con apt:

sudo apt update
sudo apt install mariadb-server -y 

Entramos en la base de datos como root:

mysql -u root -p

Configuración para acceso remoto

Para poder acceder remotamente tenemos que modificar el archivo de configuración /etc/mysql/mariadb.conf.d/50-server.cnf, buscando la línea de bind-address y poniendo lo siguiente:

bind-address            = 0.0.0.0

A continuación reiniciamos el servicio de mariadb:

systemctl restart mariadb.service

Dentro de mariadb, tenemos que crear un usuario para el acceso remoto (el % es un comodín para indicar que se pueda acceder desde cualquier dirección):

GRANT ALL PRIVILEGES ON *.* TO 'remoto'@'%'
IDENTIFIED BY 'remoto' WITH GRANT OPTION;

Creación de usuario

Creamos un usuario con todos los privilegios:

GRANT ALL PRIVILEGES ON *.* TO 'roberto'@'localhost'
IDENTIFIED BY 'roberto' WITH GRANT OPTION;

Ahora podemos entrar con el usuario roberto:

mysql -u roberto -p

Creación de tablas

Vamos a crear el esquema scott en mysql:

create database scott;
use scott;
CREATE TABLE IF NOT EXISTS `dept` (
  `DEPTNO` int(11) DEFAULT NULL,
  `DNAME` varchar(14) DEFAULT NULL,
  `LOC` varchar(13) DEFAULT NULL
);
INSERT INTO `dept` (`DEPTNO`, `DNAME`, `LOC`) VALUES
(10, 'ACCOUNTING', 'NEW YORK'),
(20, 'RESEARCH', 'DALLAS'),
(30, 'SALES', 'CHICAGO'),
(40, 'OPERATIONS', 'BOSTON');
CREATE TABLE IF NOT EXISTS `emp` (
  `EMPNO` int(11) NOT NULL,
  `ENAME` varchar(10) DEFAULT NULL,
  `JOB` varchar(9) DEFAULT NULL,
  `MGR` int(11) DEFAULT NULL,
  `HIREDATE` date DEFAULT NULL,
  `SAL` int(11) DEFAULT NULL,
  `COMM` int(11) DEFAULT NULL,
  `DEPTNO` int(11) DEFAULT NULL
);
INSERT INTO `emp` (`EMPNO`, `ENAME`, `JOB`, `MGR`, `HIREDATE`, `SAL`, `COMM`, `DEPTNO`) VALUES
(7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, NULL, 20),
(7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30),
(7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30),
(7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, NULL, 20),
(7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30),
(7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, NULL, 30),
(7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, NULL, 10),
(7788, 'SCOTT', 'ANALYST', 7566, '1982-12-09', 3000, NULL, 20),
(7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000, NULL, 10),
(7844, 'TURNER', 'SALESMAN', 7698, '1980-09-08', 1500, 0, 30),
(7876, 'ADAMS', 'CLERK', 7788, '1983-01-12', 1100, NULL, 20),
(7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, NULL, 30),
(7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, NULL, 20),
(7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, NULL, 10);

PostgreSQL

El paquete de PostgreSQL se encuentra en los repositorios de Debian, por lo que podemos instalarlo directamente con apt:

sudo apt install postgreSQL

Accedemos al usuario postgres:

su postgres

Configuración para acceso remoto

Para poder acceder remotamente tenemos que modificar el archivo de configuración /etc/postgresql/13/main/postgresql.conf, buscando la línea de listen_addresses y poniendo lo siguiente:

listen_addresses = '*'

También, al final del fichero /etc/postgresql/13/main/pg_hba.conf tenemos que añadir las siguientes líneas:

host    all      all              0.0.0.0/0                    md5
host    all      all              ::/0                         md5

Reiniciamos el servicio para que los cambios tengan efecto:

systemctl restart postgresql.service

Ahora vamos a crear un usuario con contraseña para acceder desde fuera con el siguiente comando dentro de psql:

create user roberto with superuser password 'roberto';

Creación de tablas

Creamos la base de datos y accedemos a psql

createdb scott
psql

Dentro del intérprete de comandos añadimos el esquema scott:

\c scott

create table dept (
  deptno integer,
  dname  text,
  loc    text,
  constraint pk_dept primary key (deptno)
);
create table emp (
  empno    integer,
  ename    text,
  job      text,
  mgr      integer,
  hiredate date,
  sal      integer,
  comm     integer,
  deptno   integer,
  constraint pk_emp primary key (empno),
  constraint fk_mgr foreign key (mgr) references emp (empno),
  constraint fk_deptno foreign key (deptno) references dept (deptno)
);
insert into dept (deptno,  dname,        loc)
       values    (10,     'ACCOUNTING', 'NEW YORK'),
                 (20,     'RESEARCH',   'DALLAS'),
                 (30,     'SALES',      'CHICAGO'),
                 (40,     'OPERATIONS', 'BOSTON');
insert into emp (empno, ename,    job,        mgr,   hiredate,     sal, comm, deptno)
       values   (7369, 'SMITH',  'CLERK',     7902, '1980-12-17',  800, NULL,   20),
                (7499, 'ALLEN',  'SALESMAN',  7698, '1981-02-20', 1600,  300,   30),
                (7521, 'WARD',   'SALESMAN',  7698, '1981-02-22', 1250,  500,   30),
                (7566, 'JONES',  'MANAGER',   7839, '1981-04-02', 2975, NULL,   20),
                (7654, 'MARTIN', 'SALESMAN',  7698, '1981-09-28', 1250, 1400,   30),
                (7698, 'BLAKE',  'MANAGER',   7839, '1981-05-01', 2850, NULL,   30),
                (7782, 'CLARK',  'MANAGER',   7839, '1981-06-09', 2450, NULL,   10),
                (7788, 'SCOTT',  'ANALYST',   7566, '1982-12-09', 3000, NULL,   20),
                (7839, 'KING',   'PRESIDENT', NULL, '1981-11-17', 5000, NULL,   10),
                (7844, 'TURNER', 'SALESMAN',  7698, '1981-09-08', 1500,    0,   30),
                (7876, 'ADAMS',  'CLERK',     7788, '1983-01-12', 1100, NULL,   20),
                (7900, 'JAMES',  'CLERK',     7698, '1981-12-03',  950, NULL,   30),
                (7902, 'FORD',   'ANALYST',   7566, '1981-12-03', 3000, NULL,   20),
                (7934, 'MILLER', 'CLERK',     7782, '1982-01-23', 1300, NULL,   10);

MongoDB

Como indica la documentación oficial, Primero tenemos que añadir la clave a nuestros repositorios:

sudo apt install gnupg gnupg2 gnupg1
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -

Ahora añadimos el repositorio de mongo a los repositorios de debian:

echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

Y ahora, con los repositorios ya añadidos, instalamos mongodb:

sudo apt update
sudo apt install -y mongodb-org

Una vez instalado, iniciamos el servicio y activamos el inicio automático:

sudo systemctl start mongod
sudo systemctl enable mongod

Configuración de acceso remoto

Tenemos que editar el fichero /etc/mongod.conf y comentar la línea bindIP:

# bindIp: 127.0.0.1

y reiniciamos el servicio

sudo systemctl restart mongod

Creación de documentos

En este caso voy a insertar los datos de mi proyecto de MongoDB

mongoimport --db=yugioh --collection=prankkids --jsonArray --type json --file=prankkids.json

Podemos hacer una consulta para comprobar que se ha creado correctamente:

use yugioh
db.prankkids.find({"card_sets.set_name":"Hidden Summoners"}).count()

mongo