Cómo conectar MySQL o MariaDB a un servidor cloud Linux
Puedes conectar fácilmente tu base de datos MySQL o MariaDB a un servidor cloud Linux para ejecutar tus aplicaciones de forma más flexible. Con las credenciales correctas y una configuración adecuada, la conexión MySQL en Linux se realiza de manera rápida y sencilla.
- Arquitectura de primera gestionada por expertos
- Soluciones flexibles adaptadas a tus necesidades
- Seguridad máxima en centros de datos con certificación ISO
Requisitos
- Un servidor cloud con Linux, independientemente de la distribución que utilices.
- La pila LAMP instalada y en funcionamiento (Apache, MySQL/MariaDB y PHP).
- Si usas un cortafuegos, asegúrate de permitir el acceso al puerto 3306 en el servidor MySQL/MariaDB.
Cómo conectar MySQL o MariaDB a un servidor cloud Linux
Las bases de datos suelen conectarse a servidores cloud Linux para ejecutar aplicaciones de forma flexible y escalable. De este modo, varios servicios o páginas web pueden acceder a los mismos datos sin necesidad de instalaciones locales separadas. Además, un servidor cloud simplifica la gestión de la base de datos, así como la realización de copias de seguridad y actualizaciones del sistema.
En esta guía te mostramos cómo configurar una base de datos MySQL o MariaDB en un servidor Linux y cómo conectarla a través de un script PHP.
Paso 1: crear una base de datos de prueba
Para este tutorial, utilizaremos una base de datos de prueba. Para crearla, primero inicia sesión:
mysql -u root -pCrea la base de datos de prueba con este comando:
CREATE DATABASE phptest;A continuación, cambia a la base de datos de prueba:
USE phptest;Crea una tabla de ejemplo; en este caso, una tabla para almacenar empleados:
CREATE TABLE employees (id INT, name VARCHAR(40));Ahora añade dos empleados a la tabla:
INSERT INTO employees VALUES (1, "Alice");
INSERT INTO employees VALUES (2, "Bob");Para comprobar que los registros se han creado correctamente, utiliza la siguiente consulta SQL:
SELECT * FROM employees;El resultado debería verse así:
+------+-------+
| id | name |
+------+-------+
| 1 | Alice |
| 2 | Bob |
+------+-------+
2 rows in set (0,002 sec)Paso 2: crear un usuario para MySQL/MariaDB
Para habilitar el acceso autenticado y proteger la base de datos frente a conexiones no autorizadas, el siguiente paso consiste en crear un usuario MySQL/MariaDB. Para ello, vuelve a iniciar sesión en el cliente MySQL/MariaDB del servidor de base de datos.
mysql -u root -pEl siguiente comando crea un nuevo usuario y le concede permisos para acceder a la base de datos creada en el paso anterior.
CREATE USER [Username]@[Location] IDENTIFIED BY [Passwort];
GRANT ALL PRIVILEGES ON [Datenbankname].* TO [Username]@[Location];
FLUSH PRIVILEGES;Sustituye los siguientes valores en el comando:
[Database name]: el nombre de tu base de datos.[Username]: el nombre del usuario que deseas crear.[Location]: la ubicación del script PHP. Si el script PHP y la base de datos MySQL se encuentran en el mismo servidor, usalocalhost. En caso contrario, introduce la dirección IP del servidor donde se aloja el script PHP.[Password]: una contraseña segura para tu usuario.
Por ejemplo, para crear un usuario llamado phpuser con la contraseña Ig86N3tUa9, que se encuentra en el mismo servidor que la base de datos MySQL y tiene acceso a la base de datos phptest, ejecuta:
CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser'@'localhost';
FLUSH PRIVILEGES;Para crear un segundo usuario llamado phpuser2, que se conecte desde un servidor con la dirección IP 192.168.0.1, usa:
CREATE USER 'phpuser2'@'192.168.0.1' IDENTIFIED BY 'Rq53yur62I';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser2'@'192.168.0.1';
FLUSH PRIVILEGES;- vCPU económico con núcleos dedicados
- Flexible y sin periodo mínimo contractual
- Soporte experto 24/7
Paso 3: crear un script de conexión PHP
Para comprobar la conexión de tu aplicación PHP en el servidor Linux con la base de datos, vamos a crear un pequeño script de prueba. Este script se conectará a la base de datos de ejemplo, leerá los datos de una tabla y los mostrará en el navegador. De este modo podrás verificar que el usuario, la contraseña y el host están configurados correctamente y que la base de datos es accesible.
Primero, crea el archivo del script de prueba:
sudo nano /var/www/html/phpconnect.phpA continuación, pega el siguiente contenido dentro del archivo:
<html>
<head>
<title>Test PHP Connection Script</title>
</head>
<body>
<h3>Welcome to the PHP Connect Test</h3>
<?php
$dbname = [Database name];
$dbuser = [Username];
$dbpass = [Password];
$dbhost = [Location];
// Establecer conexión
$connect = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if (!$connect) {
die("Error de conexión: " . mysqli_connect_error());
}
// Consultar datos
$result = mysqli_query($connect, "SELECT id, name FROM employees");
while ($row = mysqli_fetch_assoc($result)) {
echo "ID: {$row['id']} Name: {$row['name']}<br>";
}
mysqli_close($connect);
?>
</body>
</html>htmlSustituye Username, Password, Location y Host por los valores correspondientes. Por ejemplo, si el script se ejecuta en el mismo servidor que la base de datos, usa:
$dbuser = 'phpuser';
$dbpass = 'Ig86N3tUa9';
$dbhost = 'localhost';Si el script se encuentra en otro servidor distinto al de la base de datos y quieres comprobar una conexión remota, introduce los siguientes valores:
$dbuser = 'phpuser2';
$dbpass = 'Rq53yur62I';
$dbhost = '192.168.0.2';Cómo solucionar errores de conexión remota en MySQL/MariaDB
Si tu aplicación PHP u otro script no pueden conectarse desde un servidor distinto al de la base de datos MySQL/MariaDB, puede haber varias causas. A continuación encontrarás algunas posibles soluciones.
Solución 1: comprobar el usuario y sus permisos
Si tienes problemas para conectar a una base de datos MySQL/MariaDB en otro servidor, verifica lo siguiente:
- ¿Estás usando el nombre de usuario y la contraseña correctos?
- ¿El usuario tiene configurada la ubicación correcta?
Por defecto, MySQL/MariaDB solo permite el acceso desde el host indicado al crear el usuario. Por ejemplo, si el usuario se creó con el siguiente comando:
CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser'@'localhost';
FLUSH PRIVILEGES;Entonces solo podrá iniciar sesión en el mismo servidor donde se ejecuta la base de datos (localhost). Un script alojado en otro servidor necesitará un usuario creado para la dirección IP remota o para % (todos los hosts).
Solución 2: probar la conexión desde la línea de comandos
Antes de probar el script PHP, conviene comprobar la conexión directamente desde la línea de comandos de MySQL. En el servidor donde se ejecuta el script, utiliza:
mysql -u [username] -h [host server IP address] -pPor ejemplo, para conectarte a una base de datos en la IP 192.168.0.2 con el usuario phpuser2, el comando sería:
mysql -u phpuser2 -h 192.168.0.2 -pSi la conexión es correcta, accederás al cliente MySQL/MariaDB del servidor remoto.
Solución 3: comprobar la configuración del cortafuegos
Asegúrate de que las reglas del cortafuegos permiten el tráfico TCP/UDP en el puerto 3306 hacia el servidor de base de datos.
Ten en cuenta que todos los servidores cloud están sujetos a las políticas predeterminadas del cortafuegos que se gestionan desde el Cloud Panel.

