MariaDB/MySQL com Linux: conectar seu banco de dados a um servidor em nuvem
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 -pCrie 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 -pCom 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, uselocalhost. 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;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.phpEm 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>htmlSubstitua [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] -pPara, 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 -pSe 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.

