7.6 KiB
title | date | draft | categories | tags | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Instalación de MariaDB y PostgreSQL en Debian | 2022-10-26T09:32:09+02:00 | false |
|
|
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()