Creamos el nuevo Droplet: baseDeDatos
Actualizar Droplet:
apt-get update
apt-get upgrade
Instalar base de datos:
apt-get install mysql-server
Agregar opciones de seguridad:
mysql_secure_installation
n porque no vamos a usar el plugin de contraseñas.
Si nos sale lo de eliminar usuarios anónimos, lo recomendable es eliminarlos si vamos a pasar a producción.
Creamos un nuevo ususario:
mysql -u root
No funciona:
grant all privileges on *.* to 'usuario'@'ip_privada_servidor_backend' identified by 'contraseña';
Si funciona (fuente:gemini.ia): ¡Claro! Veo el error en tu sintaxis. El problema está en cómo estás combinando la concesión de privilegios con la definición de la contraseña.
La sintaxis correcta para crear un nuevo usuario y otorgarle permisos desde un servidor backend es la siguiente, dividida en dos comandos separados:
1. Crear el usuario:
SQLCREATE USER 'usuario'@'ip_privada_servidor_backend' IDENTIFIED BY 'contraseña';
CREATE USER: Esta es la instrucción para crear un nuevo usuario de MySQL.
'usuario': Reemplaza esto con el nombre de usuario que deseas crear.
'ip_privada_servidor_backend': Aquí debes colocar la dirección IP privada del servidor backend desde donde se conectará este usuario. Asegúrate de usar comillas simples alrededor del nombre de usuario y la IP del host.
IDENTIFIED BY 'contraseña': Reemplaza esto con la contraseña que deseas asignar a este usuario. También debe ir entre comillas simples.
2. Otorgar los privilegios:
SQLGRANT ALL PRIVILEGES ON *.* TO 'usuario'@'ip_privada_servidor_backend';
GRANT ALL PRIVILEGES: Esto otorga todos los permisos posibles al usuario. Si deseas ser más específico, puedes listar los privilegios que quieres conceder (por ejemplo, SELECT, INSERT, UPDATE, DELETE en lugar de ALL PRIVILEGES).
ON *.*: Esto especifica que los privilegios se aplican a todas las bases de datos (*) y a todas las tablas dentro de esas bases de datos (.*). Si quieres limitar los permisos a una base de datos o tabla específica, debes indicarlo aquí (por ejemplo, ON nombre_basededatos.* o ON nombre_basededatos.nombre_tabla).
TO 'usuario'@'ip_privada_servidor_backend': Esto indica a qué usuario y desde qué host se aplican los privilegios. Debe coincidir exactamente con la definición del usuario que creaste en el paso anterior.
Después de ejecutar estos dos comandos, es muy importante que ejecutes el siguiente comando para que los cambios de privilegios surtan efecto:
SQLFLUSH PRIVILEGES;
En resumen, tu secuencia de comandos correcta debería ser:
SQLCREATE USER 'usuario'@'ip_privada_servidor_backend' IDENTIFIED BY 'contraseña';
GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'ip_privada_servidor_backend';
FLUSH PRIVILEGES;
Asegúrate de reemplazar 'usuario', 'ip_privada_servidor_backend' y 'contraseña' con los valores correctos para tu entorno. ¡Espero que esto te ayude! ¿Hay algo más en lo que pueda asistirte?
exit
editar archivo:
nano /etc/mysql/mysql.conf.d/mysqld.cnf
Ctrl+W -> bind
#bind-address = 127.0.0.1
#mysqlx-bind-address = 127.0.0.1
Reiniciar el servicio de base de datos:
/etc/init.d/mysql restart
Instalar cliente de mysql en nuestro servidor backend:
apt install mysql-client-core-8.0
Iniciar sesión desde nuestro servidor backend:
mysql -u usuario -h ip_privada_servidor_base_de_datos -p
Crear base de datos:
create database curso
exit