Con el lanzamiento de CentOS 7, MariaDB reemplazó a MySQL como el sistema de base de datos predeterminado. MariaDB fue creado por los desarrolladores originales de MySQL y es un reemplazo directo mejorado para MySQL con equivalencia binaria de biblioteca y coincidencia exacta con las API y los comandos de MySQL.
Este artículo describe una instalación básica de un servidor de base de datos MariaDB en CentOS Linux. Es posible que deba instalar otros paquetes para permitir que las aplicaciones usen MariaDB, como extensiones para PHP. Consulte la documentación de su solicitud para obtener más información.
Instalar el servidor de base de datos
Siga los pasos de esta sección para instalar el servidor de la base de datos central.
Instalar MariaDB
Instale el servidor MariaDB a través del administrador de paquetes CentOS (yum) ejecutando el siguiente comando en el símbolo del sistema:
sudo yum install mariadb-server
Permitir acceso remoto
Ejecute el siguiente comando para permitir el acceso remoto:
firewall-cmd --zone=public --add-service=mysql --permanent
Establecer la contraseña de root
Debido a que acaba de instalar el servidor de la base de datos MariaDB, la cuenta raíz no tiene configurada una contraseña. Use el siguiente comando para establecer la contraseña de root y otras configuraciones importantes:
/usr/bin/mysql_secure_installation
Iniciar y detener el servicio de base de datos
Una vez completada la instalación, puede iniciar el servicio de la base de datos utilizando los comandos de esta sección. Si el sistema ya se inició, un mensaje le informa que el servicio ya se está ejecutando.
Use el siguiente comando para iniciar MariaDB:
sudo systemctl start mariadb.service
Use el siguiente comando para detener MariaDB:
sudo systemctl stop mariadb.service
Iniciar al reiniciar
Para asegurarse de que el servidor de la base de datos se inicie después de un reinicio, debe habilitar chkconfig
utilidad. Use el siguiente comando para hacer esto:
sudo systemctl enable mariadb.service
Iniciar el shell de MariaDB
Hay más de una forma de trabajar con un servidor MariaDB, pero este artículo se centra en el enfoque más básico y compatible:el mariadb
concha.
-
En el símbolo del sistema, ejecute el siguiente comando para iniciar el shell e ingréselo como usuario root:
/usr/bin/mysql -u root -p
-
Cuando se le solicite una contraseña, ingrese la que configuró en la instalación, o si no configuró una, presione Entrar para enviar sin contraseña.
Debería aparecer el siguiente indicador de shell:
MariaDB [(none)]>
Ver usuarios
MariaDB y MySQL almacenan la información de los usuarios en sus propias bases de datos. El nombre de la base de datos es mysql . Dentro de esa base de datos, la información del usuario está en una tabla, un conjunto de datos que se llama usuario . Si desea ver qué usuarios están configurados en la tabla de usuarios de MySQL, ejecute el siguiente comando:
SELECT User, Host, Password FROM mysql.user;
La siguiente lista describe las partes de ese comando:
- SELECCIONAR le dice a MySQL que está solicitando datos.
- Usuario, Host, Contraseña le dice a MySQL en qué campos quiere que busque. Los campos son categorías para los datos en una tabla. En este caso, está buscando el nombre de usuario, el host asociado con el nombre de usuario y la entrada de contraseña cifrada.
- DESDE mysql.user le dice a MySQL que obtenga los datos de mysql base de datos y el usuario mesa.
- Un punto y coma (;) finaliza el comando.
Usuario host
El siguiente ejemplo es el resultado de la consulta anterior:
SELECT User, Host, Password FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User | Host | Password |
+------------------+-----------+-------------------------------------------+
| root | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| root | 127.0.0.1 | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| root | ::1 | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
+------------------+-----------+-------------------------------------------+
Los usuarios están asociados con un host, específicamente el host al que se conectan. El usuario raíz en este ejemplo está definido para localhost , para la dirección IP de localhost y el nombre de host del servidor. Por lo general, debe configurar un usuario solo para el host desde el que normalmente se conecta.
Si está ejecutando su aplicación en la misma computadora que el servidor MariaDB, el host al que se conecta de forma predeterminada es localhost . Cualquier nuevo usuario que cree debe tener localhost en su host campo.
Si su aplicación se conecta de forma remota, el host La entrada que busca MariaDB es la dirección IP o el nombre de host DNS de la computadora remota (de la que proviene el cliente).
Crear una base de datos
Hay una diferencia entre un servidor de base de datos y una base de datos , aunque esos términos a menudo se usan indistintamente. MariaDB es un servidor de base de datos, lo que significa que realiza un seguimiento de las bases de datos y controla el acceso a ellas. La base de datos almacena los datos, y es la base de datos a la que las aplicaciones intentan acceder cuando interactúan con MariaDB.
Algunas aplicaciones crean una base de datos como parte de su proceso de configuración, pero otras requieren que usted cree una base de datos y le informe a la aplicación al respecto.
Para crear una base de datos, inicie sesión en mariadb
shell y ejecute el siguiente comando, reemplazando demodb
con el nombre de la base de datos que desea crear:
CREATE DATABASE demodb;
Se crea la base de datos. Puede verificar su creación ejecutando una consulta para enumerar todas las bases de datos. El siguiente ejemplo muestra la consulta y el resultado del ejemplo:
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| demodb |
| mysql |
+--------------------+
3 rows in set (0.00 sec)
Administrar usuarios y privilegios
Utilice las instrucciones de esta sección para agregar usuarios a la base de datos y otorgar y revocar privilegios.
Añadir usuarios y privilegios
Cuando las aplicaciones se conectan a la base de datos mediante el usuario raíz, normalmente tienen más privilegios de los que necesitan. Puede crear un nuevo usuario que las aplicaciones pueden usar para conectarse a la nueva base de datos. En el siguiente ejemplo, un usuario llamado demouser se crea.
Para crear un nuevo usuario, ejecute el siguiente comando en mariadb
concha:
CREATE USER 'demouser'@'localhost' IDENTIFIED BY 'demopassword';
Puede verificar que el usuario se creó ejecutando una consulta SELECT nuevamente:
SELECT User, Host, Password FROM mysql.user;
+----------+-----------+------------------------------------------+
| User | Host | Password |
+----------+-----------+------------------------------------------+
| root | localhost | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | demohost | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | 127.0.0.1 | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| demouser | localhost | 0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |
+----------+-----------+------------------------------------------+
Otorgar privilegios de usuario de la base de datos
Inmediatamente después de crear un nuevo usuario, no tiene privilegios. El usuario se puede usar para iniciar sesión en MariaDB, pero no se puede usar para realizar cambios en la base de datos.
-
Otorgue al usuario todos los privilegios para su nueva base de datos ejecutando el siguiente comando:
GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
-
Vacíe los privilegios para que el cambio surta efecto.
FLUSH PRIVILEGES;
-
Para verificar que se establecieron los privilegios, ejecute el siguiente comando:
SHOW GRANTS FOR 'demouser'@'localhost';
MariaDB devuelve los comandos necesarios para reproducir los privilegios de ese usuario si tuviera que reconstruir el servidor.
USAGE on \*.\*
significa que el usuario no tiene privilegios sobre nada por defecto. Ese comando es anulado por el segundo comando, que es la concesión que ejecutó para la nueva base de datos.+-----------------------------------------------------------------------------------------------------------------+ | Grants for demouser@localhost | +-----------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' | | GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'localhost' | +-----------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
Revocar privilegios
En ocasiones, es posible que deba revocar (eliminar) los privilegios de un usuario. Por ejemplo, suponga que estuviera otorgando ALL
privilegios a 'demouser'@'localhost', pero también otorgó privilegios accidentalmente a todas las demás bases de datos, como se muestra en los siguientes comandos:
+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON *.* TO 'demouser'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Para corregir el error, puede usar un REVOKE
instrucción, seguida de GRANT
para aplicar los privilegios correctos.
REVOKE ALL ON *.* FROM demouser@localhost;
GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
SHOW GRANTS FOR 'demouser'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON 'demodb'TO 'demouser'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Ahora su usuario tiene los privilegios correctos y su servidor de base de datos es un poco más seguro (otorga privilegios como ALL on *.*
se considera una práctica muy mala). También debe leer la documentación oficial de MariaDB con respecto a las posibles opciones de privilegios, para otorgar solo los privilegios realmente necesarios, en lugar de usar ALL
.
Resumen
Si solo está creando una base de datos y un usuario, ya ha terminado. Los conceptos cubiertos en este artículo deberían brindarle un sólido punto de partida para obtener más información.