Você pode conectar fa­cil­mente seu banco de dados MySQL ou MariaDB a um servidor Linux em nuvem, per­mi­tindo que apli­ca­ti­vos funcionem de forma mais flexível. Com as cre­den­ci­ais corretas e a con­fi­gu­ra­ção adequada, a conexão do MariaDB ou MySQL com Linux é realizada de forma simples e rápida.

Re­qui­si­tos

  • Um servidor Linux em nuvem (qualquer dis­tri­bui­çã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 fre­quen­te­mente co­nec­ta­dos a ser­vi­do­res em nuvem Linux para operar apli­ca­ções de forma flexível e escalável. Assim, diversos serviços ou apli­ca­ções web podem acessar os mesmos dados sem a ne­ces­si­dade de ins­ta­la­ções locais separadas. Além disso, um servidor em nuvem permite uma gestão simples, backups e atu­a­li­za­ções de segurança do banco de dados. Neste tutorial, mostramos como você pode con­fi­gu­rar 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, uti­li­za­re­mos 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, es­co­lhe­mos uma tabela que armazena fun­ci­o­ná­rios:

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

Agora, adicione dois fun­ci­o­ná­rios à tabela:

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

Para verificar se os registros foram criados cor­re­ta­mente, 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 au­ten­ti­cado e ao mesmo tempo proteger o banco de dados contra acesso não au­to­ri­zado, 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 per­mis­sõ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á lo­ca­li­zado.
  • [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 con­fi­gu­ra­dos cor­re­ta­mente 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 [No­me­Do­Ban­co­De­Da­dos], [No­me­DeU­su­a­rio], [Senha] e [Hostname] pelos dados cor­res­pon­den­tes. 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 per­mis­sõ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 con­fi­gu­rou o local correto?

MySQL e MariaDB permitem, por padrão, que um usuário faça login apenas a partir do host es­pe­ci­fi­cado 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 fun­ci­o­nará 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 di­re­ta­mente 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, es­ta­be­le­cer 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á re­gis­trado no cliente MySQL/MariaDB no servidor remoto por meio deste comando.

Solução 3: firewall

Você deve se cer­ti­fi­car de que todas as regras de firewall re­le­van­tes foram atu­a­li­za­das para permitir o tráfego TCP/UDP na porta 3306 para o servidor de banco de dados. Você também deve levar em con­si­de­ra­ção de que todos os ser­vi­do­res na nuvem são afetados pela política de firewall padrão, con­tro­lada pelo Cloud Panel.

Ir para o menu principal