Archivo

Archivo para la categoría ‘Bases de datos’

Error Django en Seafile

martes, 25 de enero de 2022 Sin comentarios

Si nos encontramos un error similar al siguiente en los log’s de Seafile (sobretodo al intentar crear un fichero «.md»):

django.db.utils.OperationalError: no such column: base_filecomment.uuid_id

Se debe a que en la migración a la versión 7.0 la base de datos no sufrió los cambios necesarios y nos toca hacerlos a mano.

En el caso de utilizar MySQL nos bastará con hacer lo siguiente después de haber eliminado la tabla «base_filecomment»:

CREATE TABLE `base_filecomment` (

`id` int(11) NOT NULL AUTO_INCREMENT,
`author` varchar(255) NOT NULL,

`comment` longtext NOT NULL,
`created_at` datetime NOT NULL,

`updated_at` datetime NOT NULL,
`uuid_id` char(32) NOT NULL,

`detail` longtext NOT NULL,
`resolved` tinyint(1) NOT NULL,

PRIMARY KEY (`id`),
KEY `base_filecomment_uuid_id_4f9a2ca2_fk_tags_fileuuidmap_uuid` (`uuid_id`),

KEY `base_filecomment_author_8a4d7e91` (`author`),

KEY `base_filecomment_resolved_e0717eca` (`resolved`),

CONSTRAINT `base_filecomment_uuid_id_4f9a2ca2_fk_tags_fileuuidmap_uuid` FOREIGN KEY (`uuid_id`) REFERENCES `tags_fileuuidmap` (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Si se trata de SQLite tendremos que eliminar la tabla «base_filecomment» y recrearla con lo siguiente:

CREATE TABLE «base_filecomment» (
«id» integer NOT NULL PRIMARY KEY AUTOINCREMENT,
«author» varchar(255) NOT NULL,
«comment» text NOT NULL,
«created_at» datetime NOT NULL,
«updated_at» datetime NOT NULL,
«uuid_id» char(32) NOT NULL REFERENCES «tags_fileuuidmap» («uuid»),
«detail» text NOT NULL,
«resolved» bool NOT NULL);

MariaDB «[ERROR] Error in accept: Too many open files»

viernes, 4 de mayo de 2018 Sin comentarios

Dependiendo de la configuración del sistema, tendremos un límite u otro de número de archivos que se pueden abrir. Cuando se llega a tal límite, MariaDB nos puede saltar con el error del título de esta entrada. Para tratar de ampliar dicho límite hay que editar el fichero «/etc/security/limits.conf» añadiendo los siguientes valores:

mysql soft nofile 65535
mysql hard nofile 65535

Reiniciaremos el sistema y haremos lo siguiente:

mkdir -p /etc/systemd/system/mysql.service.d/
vi /etc/systemd/system/mysql.service.d/limits.conf

Añadiremos estos valores:

[Service]
LimitNOFILE=infinity

Reiniciaremos el servicio y consultaremos los límites de nuevo:

systemctl daemon-reload

/etc/init.d/mysql restart

cat /proc/$(cat /var/run/mysqld/mysqld.pid)/limits

 

Categories: GNU/Linux, MySQL Tags: ,

PhpMyAdmin no permite el login

jueves, 3 de mayo de 2018 Sin comentarios

Si por una actualización al intentar acceder a PhpMyAdmin lo que obtenemos es el siguiente error:

SQLSTATE[HY000] [1698] Access denied for user ‘root’@’localhost’

Tenemos que tener en cuenta de que es provocado por un cambio en el modelo de seguridad que fuerza a que el login de root sea con un sudo.

Para darle solución rápida en un entorno de desarrollo (y no de producción), es suficiente con hacer lo siguiente:

sudo mysql -u root
[mysql] use mysql;
[mysql] update user set plugin=» where User=’root’;
[mysql] flush privileges;
[mysql] \q

Categories: MySQL, PHP Tags:

Optimizar tablas en MySQL o MariaDB

viernes, 30 de octubre de 2015 Sin comentarios

Tienes un servidor con una gran cantidad de bases de datos y necesitas lanzar un proceso de optimización de tablas. Puedes ir una a una:

OPTIMIZE TABLE miTabla;

O hacerlo de golpe desde un terminal:

mysqlcheck -u username -p –auto-repair –optimize –all-databases