Como liberar o acesso remoto do MySQL no Ubuntu 10.04 LTS e acessar pelo PHP
Faça a liberação do firewall
sudo ufw allow 3306/tcp
sudo ufw reload
Liberar banco remoto
Se você deseja permitir o acesso remoto apenas para o localhost (127.0.0.1) e um endereço IP específico, você precisará fazer algumas alterações adicionais na configuração do MySQL. Siga as etapas abaixo:
- Abra o arquivo de configuração do MySQL usando um editor de texto. O local do arquivo pode variar, mas geralmente é encontrado em
/etc/mysql/mysql.conf.d/mysqld.cnf
ou/etc/mysql/my.cnf
. - Localize a linha que começa com
bind-address
e certifique-se de que esteja configurada para o endereço IP do localhost (127.0.0.1). Por exemplo:
bind-address = 127.0.0.1
3. Adicione as seguintes linhas abaixo da linha bind-address para permitir a conexão remota a partir do IP específico que você deseja. Substitua seu_ip_aqui pelo endereço IP desejado:
bind-address = 127.0.0.1
bind-address = seu_ip_aqui
bind-address = 0.0.0.0 (para todos ips)
4. Salve e feche o arquivo de configuração.
5. Reinicie o serviço do MySQL para aplicar as alterações:
sudo service mysql restart
Com essas alterações, o MySQL estará configurado para permitir o acesso remoto apenas para o localhost (127.0.0.1) e o endereço IP específico fornecido.
Lembre-se de substituir seu_ip_aqui
pelo endereço IP correto que deseja permitir o acesso. Isso garantirá que apenas o localhost e o IP especificado possam se conectar remotamente ao MySQL.
Como faz para acessar o MYSQL remotamente pelo PHP?
Para acessar o banco de dados MySQL em um servidor remoto usando PHP, você precisará configurar a conexão com o banco de dados e fornecer as credenciais corretas. Aqui está um exemplo de como fazer isso:
- Certifique-se de ter o driver MySQL habilitado no PHP. Você pode verificar se o driver está habilitado verificando a saída da função
phpinfo()
. Procure por algo como “pdo”, “mysqlnd” ou “mysqli”. - No seu código PHP, você precisará usar a extensão PDO para estabelecer a conexão com o banco de dados.
O uso do PDO oferece uma camada de abstração mais poderosa e segura para interagir com bancos de dados no PHP. Ele fornece recursos como manipulação de exceções para erros de banco de dados e suporte a diferentes drivers de banco de dados.
Aqui está um exemplo básico de como configurar a conexão:
<?php
$servername = "seu_ip_aqui"; // IP do servidor MySQL remoto
$username = "seu_usuario"; // Nome de usuário para acessar o banco de dados
$password = "sua_senha"; // Senha para acessar o banco de dados
$dbname = "seu_banco_de_dados"; // Nome do banco de dados que você deseja acessar
try {
// Criando a conexão usando PDO
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// Configurando o modo de erro do PDO para Exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Exemplo de consulta:
$sql = "SELECT * FROM sua_tabela";
$stmt = $conn->query($sql);
// Exemplo de iteração pelos resultados da consulta:
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// Faça algo com os dados obtidos
}
} catch (PDOException $e) {
die("Falha na conexão: " . $e->getMessage());
}
// Fechando a conexão
$conn = null;
?>
Certifique-se de substituir seu_ip_aqui
, seu_usuario
, sua_senha
e seu_banco_de_dados
pelas informações corretas do seu banco de dados remoto.
Quanto à criação de um login e senha para acesso remoto ao servidor MySQL, você pode executar as seguintes etapas:
- Faça login no servidor MySQL como um usuário com privilégios administrativos.
- Crie um novo usuário com o comando
CREATE USER
:
CREATE USER 'seu_usuario'@'seu_ip_aqui' IDENTIFIED BY 'sua_senha';
GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'endereco_ip' WITH GRANT OPTION;
FLUSH PRIVILEGES;
CREATE USER seu_usuario IDENTIFIED BY 'passsss';
GRANT ALL PRIVILEGES ON *.* TO seu_usuario WITH GRANT OPTION;
FLUSH PRIVILEGES;
Substitua seu_usuario
, seu_ip_aqui
e sua_senha
pelas informações desejadas.
Esse caso deixa bem exposto o Mysql, é interessante adicionar um firewall direto no painel para que previna os ataques.
Dessa forma, você criou um novo usuário com login e senha e concedeu as permissões adequadas para acessar o banco de dados MySQL remotamente a partir do endereço IP especificado.