Instalar MySQL/MariaDB
MySQL es un popular RDBMS (Sistema de Administración de Base de Datos Relacional). MariaDB nació como una bifurcación de MySQL. Hoy en día los dos productos son un poco diferentes. La migración de datos de un sistema a otro podría no ser una tarea trivial.
MariaDB está licenciada totalmente como GPLv2 mientras que MySQL tiene dos opciones de licencia, GPLv2 (para la edición Community) y Enterprise.
En los repositorios Fedora usted puede encontrar:
-
MariaDB 10.3 (como un paquete usual o como un módulo)
-
MariaDB 10.4 (como un módulo)
-
MySQL 8.0 Community Edition (como paquete normal o como módulo)
Los paquetes MariaDB y MySQL entran en conflicto porque proporcionan archivos similares. Por tanto, solo puede instalar uno de ellos, o bien MariaDB o MySQL, pero no ambos. |
En adición puede además instalar la edición de MySQL community (8.0 o 5.7) desde el repositorio mantenido por el mismo Oracle/MySQL.
Instalar desde 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. |
Añadir el repositorio MySQL a Fedora
Descargue el paquete de lanzamiento proporcionado por Oracle desde: https://dev.mysql.com/downloads/repo/yum/ Una vez descargado, instálelo usando dnf:
sudo dnf install <ruta al rpm descargado>
Note que este repositorio está proporcionado por Oracle por tanto cualquier informe/defecto encontrado necesitará ser informado de ellos por medio de sus canales de comunicación: https://www.mysql.com/about/faq/
Start MySQL Service and Enable at login:
sudo systemctl start mysqld sudo systemctl enable mysqld
encuentra Contraseña Predeterminada, por razones de seguridad, MySQL genera una clave de root temporal. Tenga en cuenta que MySQL tiene normativas de seguridad más estrictas que MariaDB.
sudo grep 'temporary password' /var/log/mysqld.log
Instalar desde el Repo Principal de Fedora
La comunidad proporciona un paquete de MySQL en el repo principal.
sudo dnf install {community-mysql-server|mariadb-server}
Configurar MySQL/MariaDB
Habilita el servicio al arrancar y comenzar:
sudo systemctl enable {mysqld|mariadb} sudo systemctl start {mysqld|mariadb}
Instalar desde Podman
Iniciar una Instancia de Servidor MySQL
Los siguientes comandos contienen la contraseña aleatoria generada para el usuario root;
podman logs mysql 2>&1 | grep GENERATED
podman run -d --name=mysql -e MYSQL_ROOT_PASSWORD=mypassword mysql/mysql-server
Iniciar una Instancia MariaDB Server
podman run -d --name=mariadb -ed MYSQL_ROOT_PASSWORD=mypassword mariadb/server
Password blank default for MariaDB |
The -d option used for BOTH in the podman run command above makes the container run in the background. Use this command to monitor the output from the container: |
Connecting to MySQL Server from within the Container
podman exec -it mysql mysql -uroot -p
you must reset the server root password by issuing this statement:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
Emplear el RDBMS
Conéctese al shell MySQL/MariaDB utilizando la instrucción mysql
.
Para ambos de ellos, la instrucción es mysql
. La sintaxis y las opciones son la mismas generalmente.
$ mysql -u root -p
Una vez que obtenga acceso a la shell puede obtener la versión en ejecución del software:
mysql> SELECT version();
Puede crear una base de datos:
mysql> create schema test;
Cree un usuario:
mysql> GRANT ALL PRIVILEGES ON test.* TO 'mi_usuario'@'localhost' IDENTIFIED BY 'CoNtRaSeÑa';
List the available databases:
mysql> show schemas;
Como Permitir Acceso Remoto en Comunidad MySQL/MariaDB/MYSQL
Añadir Regla Nueva para Firewalld
Abra el puerto SQL (3306) en FireWalld:
sudo firewall-cmd --permanent --zone=public --add-service=mysql
Editar Archivos Conf:
Archivos de configuración:
-
MySQL →
/etc/my.cnf/
-
Comunidad de MySQL →
/etc/my.cnf.d/community-mysql-server.cnf
-
MariaDB →
/etc/my.conf
puede asegurar eso con el comando siguiente rpm -qc [package] .
|
Navegue a la línea que comienza con la directiva de dirección bind-address. Parecerá como esto: pudo establecer esta directiva a una dirección IP comodín, o bien *, ::, o 0.0.0.0:
bind-address = 0.0.0.0
Tras cambiar esta línea, guarde y cierre el archivo y entonces reinicie el servicio MySQL:
sudo systemctl restart {mysqld|mariadb}
Creación de un USUARIO
CREATE USER 'su_nombre-usuario'@'dirección_ip_host' IDENTIFIED BY 'su_contraseña';
Sustituya su_nombre-usuario y su_contraseña dependiendo en que pueda el nombre de usuario y contraseña esté. Aquí, host_ip_addr es el nombre del host o dirección IP del equipo desde donde desea conectar al servidor MySQL/MariaDB. Además puede utilizar % como host_ip_addr si desea conectar desde cualquier equipo. Además puede ser algo como 192.168.2.% si quiere conectar desde equipos desde el intervalo de IP 192.168.2.1 - 192.168.2.254. |
Conceder Acceso
GRANT ALL PRIVILEGES ON *.* TO 'su_nombre-usuario'@'%'; IDENTIFIED BY 'mi-contraseña-nueva' WITH GRANT OPTION;
OR
Esto es común para gente que desea crear un usuario "root" que pueda conectar desde cualquier sitio, tal que como ejemplo, hará tan solo eso, pero para mejorar en esto crearemos un usuario root que pueda conectar desde cualquier sitio en el área local de red (LAN)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'mi-contraseña-nueva' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Cómo Solucionar Problemas en SQL
Versión:
dnf list installed | grep -i -e maria -e mysql -e galera
Comprobar parámetros en el archivo de configuración:
-
MySQL:
mysqld --print-defaults
-
Comunidad de MariaDB/MySQL:
/usr/libexec/mysqld --print-defaults
Compatibilidad entre versión diferente no está permitida. Tan solo instale una de ellas. |
Como Acceder a Bitácoras de Error de SQL
A menudo, la causa raíz de las ralentizaciones, los bloqueos u otros comportamientos inesperados en SQL puede en muchos casos, los registros de errores se leen más fácilmente con el programa less, una línea de instrucción u
si SQL no se comporta como se espera, puede obtener más información sobre el origen del
-
systemctl status mysqld.service no arranca bien, ¿esta información no explica bien que esta pasando?, después de esta instrucción teclearía
journalctl -xe -u mariadb -u mysqld
. -
Mire los archivos de bitácora, se pueden ubicar en
/var/log/mysql/mysqld.log
para MySQL y/var/log/mariabd
para MariaDB.
Cómo solucionar errores de zócalos en SQL
SQL gestiona conexiones al servidor de base de datos mediante el uso de un archivo de zócalo (socket), un tipo especial de archivo que facilita las comunicaciones entre diferentes procesos. El archivo de zócalo del servidor MySQL se llama mysqld.sock y en los sistemas Ubuntu generalmente se almacena en el directorio /var/run/mysqld/. Este archivo lo crea automáticamente el servicio MySQL.
A veces, los cambios en el sistema o en la configuración de SQL pueden provocar que SQL no pueda leer el archivo de zócalo, impidiéndole acceder a sus bases de datos. El error de zócalo más común es el siguiente:
ERROR 2002 (HY000): No se puede conectar al servidor MySQL local a través del zócalo '/var/run/mysqld/mysqld.sock' (2)
Hay algunas razones por las que puede ocurrir este error y algunas formas posibles de resolverlo. Una causa común de este error es que el servicio SQL se detuvo o no se inició en primer lugar, lo que significa que no pudo crear el archivo de zócalo en primer lugar. Para saber si este es el motivo por el que ves este error, intenta iniciar el servicio con systemctl:
sudo systemctl start {mysqld|mariadb}
Luego, intenta acceder de nuevo al símbolo del sistema de MySQL. Si el error de socket persiste, revisa la ubicación donde tu instalación de MySQL busca el archivo de zócalo. Esta información puede ser encontrada en el archivo mysqld.cnf
:
busque el parámetro zócalo en la sección [mysqld] de este archivo. Se verá así:
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306
Cierre este archivo y luego asegúrese de que el archivo mysqld.sock exista ejecutando una instrucción ls en el directorio donde SQL espera encontrarlo:
ls -a /var/run/mysqld/
Si el archivo de zócalo existe, lo verá en la salida de esta instrucción:
mysqld.pid mysqld.sock mysqld.sock.lock
si el archivo no existe, es posible que MySQL esté intentando crearlo, pero no tenga los permisos necesarios. Puede asegurarse de tener los permisos correctos cambiando la propiedad del directorio al usuario y grupo MySQL:
sudo chown mysql:mysql /var/run/mysqld/
Asegúrese de que el usuario MySQL tenga los permisos adecuados para el directorio. Configurarlos en 775 funcionará en la mayoría de los casos:
sudo chmod -R 755 /var/run/mysqld/
Finalmente, reinicia el servicio MySQL tal que pueda atender para crear el archivo de zócalo de nuevo:
sudo systemctl restart {mysqld|mariadb}
Luego, intenta acceder al símbolo del sistema de MySQL de nuevo. Si el error de zócalo persiste, es probable que haya un problema más grave con tu instancia de MySQL. En ese caso, deberías revisar el registro de errores para ver si encuentra alguna pista.
Want to help? Learn how to contribute to Fedora Docs ›