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 (as a regular package or as a module)
-
MariaDB 10.4 (as a module)
-
MySQL 8.0 community edition (as a regular package or as a module)
MariaDB and MySQL packages conflict because they provide similar files. So, you can only install one of them, either MariaDB or MySQL, but not both. |
In addition you can also install MySQL commmunity edition (8.0 or 5.7) from the repository maintained by Oracle/MySQL itself.
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>
Please note that this repository is provided by Oracle so any issues/bugs encountered will need to be reported to them via their communication channels: https://www.mysql.com/about/faq/
Start MySQL Service and Enable at login:
sudo systemctl start mysqld sudo systemctl enable mysqld
find Default Password, For security reasons, MySQL generates a temporary root key. Please note that MySQL has even stricter security policies than 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
Enable the service at boot and start:
sudo systemctl enable {mysqld|mariadb} sudo systemctl start {mysqld|mariadb}
Instalar desde Podman
Starting a MySQL Server Instance
The command’s below contain the random password generated for the root user;
podman logs mysql 2>&1 | grep GENERATED
podman run -d --name=mysql -e MYSQL_ROOT_PASSWORD=mypassword mysql/mysql-server
Starting a MariaDB Server Instance
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
Once gained access to the shell you can get the running version of the software:
mysql> SELECT version();
You can create a database:
mysql> create schema test;
Create a user:
mysql> GRANT ALL PRIVILEGES ON test.* TO 'my_user'@'localhost' IDENTIFIED BY 'PaSsWoRd';
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
Editing Conf. Files:
Configuration files:
-
MySQL →
/etc/my.cnf/
-
MySQL Community →
/etc/my.cnf.d/community-mysql-server.cnf
-
MariaDB →
/etc/my.conf
you can ensure that with the following command rpm -qc [package] .
|
Navigate to the line that begins with the bind-address directive. It will look like this: you could set this directive to a wildcard IP address, either *, ::, or 0.0.0.0:
bind-address = 0.0.0.0
After changing this line, save and close the file and then restart the MySQL service:
sudo systemctl restart {mysqld|mariadb}
Creating a USER
CREATE USER 'your_username'@'host_ip_addr' IDENTIFIED BY 'your_password';
Replace your_username and your_password depending on what you want the username and password to be. Here, host_ip_addr is the hostname or IP address of the computer from where you want to connect to the MySQL/MariaDB server. You can also use % as host_ip_addr if you want to connect from any computer. It can also be something like 192.168.2.% if you want to connect from computers from the IP range 192.168.2.1 – 192.168.2.254. |
Allow Access
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%'; IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
OR
It is common for people to want to create a "root" user that can connect from anywhere, so as an example, we’ll do just that, but to improve on it we’ll create a root user that can connect from anywhere on the local area network (LAN)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' 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 ›