Instalar MySQL/MariaDB
MySQL es un sistema de gestión de base de datos relacional ampliamente utilizada (RDBMS). MariaDB es una bifurcación desarrollada por la comunidad de MySQL y es la implementación de MySQL preferida en Fedora. Mientras los dos productos comparten orígenes comunes, han divergido con el tiempo y no pueden ser trivial emigrar datos entre ellos.
MariaDB está licenciada bajo GPLv2. MySQL utiliza licencia dual: GPLv2 para Community Edition y una licencia propietaria para Enterprise.
Fedora lleva paquetes con versión para ambos:
-
Versiones de MariaDB LTS, p. ej.
mariadb10.11,mariadb11.8 -
Las versiones de MySQL LTS, p.ej.
mysql8.4
Una versión de cada una de las versiones de Fedora está puesta como la «distribución por defecto», proporcionando nombres de paquete sin versión (mariadb, mariadb-server o mysql, mysql-server).
Para ver cuales versiones están disponibles en su versión de Fedora:
$ dnf search mariadb | grep server
$ dnf search mysql | grep server
| Las versiones disponibles pueden diferir entre las versiones de Fedora. Los paquetes MariaDB y MySQL entran en conflicto porque proporcionan archivos similares —puede instalar solo uno de ellos en un momento. |
Instalar desde repositorios de Fedora
Instalar MariaDB
Para instalar la distribución de versión por defecto:
$ sudo dnf install mariadb-server
Para instalar una versión específica:
$ sudo dnf install mariadb11.8-server
Instalar MySQL
Para instalar la distribución de versión por defecto:
$ sudo dnf install mysql-server
Para instalar una versión específica:
$ sudo dnf install mysql8.4-server
Arranque del servicio
Para MariaDB:
$ sudo systemctl enable --now mariadb
Para MySQL:
$ sudo systemctl enable --now mysqld
Instalar desde el repositorio Oracle MySQL
|
Esta página analiza fuentes de software de terceros que no están afiliadas ni respaldadas oficialmente por el Proyecto Fedora. Úselas a su propia discreción. Fedora recomienda el uso de software libre y de código abierto, y evitar el software protegido por patentes. |
Oracle proporciona su propio repositorio MySQL para Fedora. Esto es útil si se necesita una versión no disponible en los repositorios de Fedora.
Añadir el repositorio Oracle MySQL
Descargue el paquete de lanzamiento desde https://dev.mysql.com/downloads/repo/yum/ e instálelo:
$ sudo dnf install <path-to-downloaded-rpm>
| Este repositorio está mantenido por Oracle. Informe sobre las incidencias por medio de https://www.mysql.com/about/faq/ |
Instalación e inicialización de MySQL
$ sudo dnf install mysql-community-server
$ sudo systemctl enable --now mysqld
MySQL genera una contraseña de root temporal en el primer inicio. Se encuentra en:
$ sudo grep 'temporary password' /var/log/mysqld.log
Entonces asegure la instalación:
$ sudo mysql_secure_installation
Respuesta para las cuestiones de seguridad como prefieres. Utilice una contraseña fuerte para el usuario root de MySQL — esto está separado de su contraseña de root del sistema.
Instalar utilizando contenedores
Fedora proporciona imágenes de contenedor en quay.io.
Contenedor MariaDB
$ podman pull quay.io/fedora/mariadb-118
$ podman run -d --name mariadb -e MYSQL_ROOT_PASSWORD=mypassword quay.io/fedora/mariadb-118
Contenedor MySQL
$ podman pull quay.io/fedora/mysql-84
$ podman run -d --name mysql -e MYSQL_ROOT_PASSWORD=mypassword quay.io/fedora/mysql-84
Conexión a la base de datos desde el contenedor
$ podman exec -it mariadb mysql -uroot -p
o para MySQL:
$ podman exec -it mysql mysql -uroot -p
Gestión de contenedores
$ podman start <container-name>
$ podman stop <container-name>
$ podman restart <container-name>
$ podman rm <container-name>
Para las imágenes disponibles, consulte https://quay.io/organization/fedora
Utilizar la base de datos
Conéctese a la consola de la base de datos:
$ mysql -u root -p
Para MariaDB instalado desde los repositorios de Fedora, el usuario root se conecta mediante autenticación de socket Unix sin contraseña: mysql -u root
|
Compruebe la versión en ejecución:
SELECT version();
Cree una base de datos y usuario:
CREATE DATABASE mydb;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
Enumera bases de datos disponibles:
SHOW DATABASES;
Conceder acceso remoto
Abra el puerto del cortafuego
$ sudo firewall-cmd --permanent --zone=public --add-service=mysql
$ sudo firewall-cmd --reload
o utilizando el número del puerto directamente:
$ sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
$ sudo firewall-cmd --reload
Configure la dirección de bind
Edita la configuración para conceder conexiones desde otros host.
Lugares de archivos de configuración:
-
MariaDB:
/etc/my.cnfy/etc/my.cnf.d/ -
MySQL:
/etc/my.cnfy/etc/my.cnf.d/
Puedes encontrar los archivos de configuración de cualquier paquete con rpm -qc <nombre-del-paquete>.
|
Configure la dirección de enlace para aceptar conexiones desde todas las interfaces:
[mysqld]
bind-address = 0.0.0.0
Entonces reinicie el servicio:
$ sudo systemctl restart mariadb
o para MySQL:
$ sudo systemctl restart mysqld
Soluciones
Comprobación de la configuración activa
Para MariaDB:
$ mariadbd --print-defaults
Para MySQL:
$ mysqld --print-defaults
Editor de bitácora
Si el servicio no se inicia, revise el diario:
$ journalctl -xe -u mariadb
o para MySQL:
$ journalctl -xe -u mysqld
Las bitácoras también se pueden encontrar en:
-
MariaDB:
/var/log/mariadb/mariadb.log -
MySQL:
/var/log/mysql/mysqld.log
Errores de socket
Si ve un error como este:
ERROR 2002 (HY000): No se puede conectar al servidor MySQL local a través del zócalo '/var/lib/mysql/mysql.sock' (2)
Esto suele significar que el servicio no está en funcionamiento. Intente iniciarlo:
$ sudo systemctl start mariadb
Si el servicio está en funcionamiento pero falta el archivo de socket, compruebe la ruta de socket configurada:
$ mysql --help | grep socket
Verifique que el archivo de socket exista:
$ ls -la /var/lib/mysql/mysql.sock
Si el archivo no existe, asegúrese de que el directorio de datos tenga la propiedad y los permisos correctos:
$ sudo chown mysql:mysql /var/lib/mysql
$ sudo chmod 755 /var/lib/mysql
Entonces reinicie el servicio:
$ sudo systemctl restart mariadb
Si el problema persiste, revise las bitácoras de error para más detalles.
Want to help? Learn how to contribute to Fedora Docs ›