Você pode conectar facilmente seu banco de dados MySQL ou MariaDB a um servidor Linux em nuvem, permitindo que aplicativos funcionem de forma mais flexível. Com as credenciais corretas e a configuração adequada, a conexão do MariaDB ou MySQL com Linux é realizada de forma simples e rápida.

Requisitos

  • Um servidor Linux em nuvem (qualquer distribuição).
  • Pilha LAMP (Apache, MySQL/MariaDB e PHP) instalada e ativa.
  • Se você tiver um firewall, deve permitir o acesso à porta 3306 no servidor MySQL/MariaDB.

Como fazer a conexão MariaDB/MySQL com Linux

Bancos de dados são frequentemente conectados a servidores em nuvem Linux para operar aplicações de forma flexível e escalável. Assim, diversos serviços ou aplicações web podem acessar os mesmos dados sem a necessidade de instalações locais separadas. Além disso, um servidor em nuvem permite uma gestão simples, backups e atualizações de segurança do banco de dados. Neste tutorial, mostramos como você pode configurar um banco de dados MySQL ou MariaDB em um servidor Linux e conectá-lo com um script PHP.

Passo 1: criar um banco de dados

Neste tutorial, utilizaremos um banco de dados de teste. Para criar um, primeiro faça o login:

mysql -u root -p

Crie o banco de dados de teste com o seguinte comando:

CREATE DATABASE phptest;

Agora, mude para o banco de dados de teste:

USE phptest;

Crie aqui uma tabela de exemplo simples. Em nosso exemplo, escolhemos uma tabela que armazena funcionários:

CREATE TABLE employees (id INT, name VARCHAR(40));

Agora, adicione dois funcionários à tabela:

INSERT INTO employees VALUES (1, "Alice");
INSERT INTO employees VALUES (2, "Bob");

Para verificar se os registros foram criados corretamente, você pode usar a seguinte consulta SQL:

SELECT * FROM employees;

A saída deve ser como segue:

+------+-------+ 
| id  | name |
+------+-------+
| 1  | Alice |
| 2  | Bob  |
+------+-------+
2 rows in set (0,002 sec)

Passo 2: criar um usuário MySQL/MariaDB

Para permitir acesso autenticado e ao mesmo tempo proteger o banco de dados contra acesso não autorizado, você deve criar um usuário MySQL/MariaDB na próxima etapa. Para isso, você deve se conectar novamente ao servidor de banco de dados no cliente MySQL/MariaDB:

mysql -u root -p

Com o comando a seguir, você cria um usuário e concede a ele permissões para o banco de dados que criamos no primeiro passo:

CREATE USER [Username]@[Location] IDENTIFIED BY [Senha];
GRANT ALL PRIVILEGES ON [NomeBancoDeDados].* TO [NomeDeUsuario]@[Local];
FLUSH PRIVILEGES;

Substitua os seguintes pontos no comando acima:

  • [NomeDoBancoDeDados] pelo nome do seu banco de dados.
  • [NomeDeUsuario] pelo nome do usuário que você deseja criar para o seu banco de dados.
  • [Local] pelo local do script PHP. Se o script PHP e o banco de dados MySQL estiverem no mesmo servidor, use localhost. Caso contrário, use o endereço IP do servidor onde o script PHP está localizado.
  • [Senha] por uma senha segura para seu usuário.

Para, por exemplo, criar um usuário chamado phpuser com a senha Ig86N3tUa9, que está no mesmo servidor que o banco de dados MySQL e tem acesso ao banco de dados phptest, o comando é:

CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser'@'localhost';
FLUSH PRIVILEGES;

Para criar um segundo usuário chamado phpuser2, que se conecta a partir de um servidor com o endereço IP 192.168.0.1, o comando é:

CREATE USER 'phpuser2'@'192.168.0.1' IDENTIFIED BY 'Rq53yur62I';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser2'@'192.168.0.1';
FLUSH PRIVILEGES;
Cloud Compute Engine da IONOS

Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.

  • Seguro
  • Confiável
  • Flexível

Passo 3: Criar um script PHP

Para verificar a conexão da sua aplicação PHP em seu servidor Linux com o banco de dados, vamos criar um pequeno script de teste. Com o script, você pode se conectar ao banco de dados de teste, lê dados de uma tabela e os exibe no navegador. Assim, você pode garantir que o usuário, a senha e o host estão configurados corretamente e que o banco de dados está acessível.

Primeiro, crie o script de teste:

sudo nano /var/www/html/phpconnect.php

Em seguida, insira o seguinte conteúdo no arquivo:

<html>
<head>
<title>Script de teste de conexão PHP</title>
</head> 
<body> 
<h3>Bem-vindo ao teste de conexão PHP</h3>
<?php
$dbname = [NomeDoBancoDeDados];
$dbuser = [NomeDeUsuario];
$dbpass = [Senha];
$dbhost = [Hostname];
// Criar conexão
$connect = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if (!$connect) {
die("Falha na conexão: " . mysqli_connect_error());
}
// Consultar dados
$result = mysqli_query($connect, "SELECT id, name FROM employees");
while ($row = mysqli_fetch_assoc($result)) {
echo "ID: {$row['id']} Nome: {$row['name']}<br>";
} 
mysqli_close($connect); 
?> 
</body>
</html>
html

Substitua [NomeDoBancoDeDados], [NomeDeUsuario], [Senha] e [Hostname] pelos dados correspondentes. Se, por exemplo, você quiser testar uma conexão local com o script, onde o script está no mesmo servidor que o banco de dados, escolha:

$dbuser = 'phpuser';
$dbpass = 'Ig86N3tUa9';
$dbhost = 'localhost';

Para verificar a conexão remota com o script, onde ele está em um servidor diferente do banco de dados, as variáveis precisam dos seguintes valores:

$dbuser = 'phpuser2';
$dbpass = 'Rq53yur62I';
$dbhost = '192.168.0.2';

Solução de problemas em uma conexão remota MySQL/MariaDB

Se sua aplicação PHP ou outro script não consegue se conectar ao banco de dados MySQL/MariaDB a partir de outro servidor, diversos fatores podem ser a causa. As seguintes sugestões de solução podem ajudar a resolver o problema:

Solução 1: verificar usuário e permissões

Se você tiver problemas para se conectar a um banco de dados MySQL/MariaDB em outro servidor, verifique primeiro o seguinte:

  • Você está usando o nome de usuário e a senha corretos do MySQL/MariaDB?
  • Este usuário configurou o local correto?

MySQL e MariaDB permitem, por padrão, que um usuário faça login apenas a partir do host especificado durante a criação. Por exemplo, se seu usuário foi criado assim:

CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9';
GRANT ALL PRIVILEGES ON phptest.* TO 'phpuser'@'localhost'; 
FLUSH PRIVILEGES;

então o login funcionará apenas no mesmo servidor em que o banco de dados está sendo executado (localhost). Um script em outro servidor deve ter um usuário criado para o endereço IP remoto ou % (todos os hosts).

Solução 2: teste de conexão via linha de comando

Antes de verificar o script PHP, você deve testar a conexão diretamente via MySQL-CLI. No servidor em que o script está sendo executado, use:

mysql -u [nome_de_usuário] -h [endereço_IP_do_servidor_host] -p

Para, por exemplo, estabelecer uma conexão com um banco de dados em 192.168.0.2 usando o nome de usuário phpuser2, o comando é:

mysql -u phpuser2 -h 192.168.0.2 -p

Se a conexão funcionar, você será registrado no cliente MySQL/MariaDB no servidor remoto por meio deste comando.

Solução 3: firewall

Você deve se certificar de que todas as regras de firewall relevantes foram atualizadas para permitir o tráfego TCP/UDP na porta 3306 para o servidor de banco de dados. Você também deve levar em consideração de que todos os servidores na nuvem são afetados pela política de firewall padrão, controlada pelo Cloud Panel.

Este artigo foi útil?
Ir para o menu principal