Olá, Leonardo!
Quando você separa as máquinas do WordPress e do MySQL, é necessário garantir que o MySQL permita conexões remotas e que o usuário do banco de dados tenha permissões para acessar de uma máquina diferente.
Aqui estão alguns passos para resolver o problema "Error establishing a database connection":
Configurar o MySQL para aceitar conexões remotas:
- Edite o arquivo de configuração do MySQL (
mysqld.cnf
). Geralmente, ele está localizado em /etc/mysql/mysql.conf.d/mysqld.cnf
. - Altere o
bind-address
para 0.0.0.0
para permitir conexões de qualquer endereço IP.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Procure pela linha:
bind-address = 127.0.0.1
E altere para:
bind-address = 0.0.0.0
Conceder permissões ao usuário do WordPress:
- No seu playbook Ansible (
provisioning.yml
), você precisa garantir que o usuário do WordPress tenha permissões para acessar o banco de dados a partir do IP da máquina onde o WordPress está rodando.
Aqui está um exemplo de como isso pode ser feito:
- name: Create database user with name 'wordpress_user' and password '12345' with all database privileges
community.mysql.mysql_user:
name: 'wordpress_user'
password: '12345'
priv: 'wordpress_db.*:SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER'
state: present
login_unix_socket: /run/mysqld/mysqld.sock
host: '{{ item }}'
with_items:
- 'localhost'
- '127.0.0.1'
- 'IP_DA_MAQUINA_WORDPRESS'
become: yes
Substitua IP_DA_MAQUINA_WORDPRESS
pelo endereço IP da máquina onde o WordPress está rodando.
Reiniciar o MySQL:
- Após fazer essas alterações, reinicie o serviço do MySQL para que as mudanças tenham efeito.
sudo systemctl restart mysql
Verificar a configuração do WordPress:
- No arquivo de configuração do WordPress (
wp-config.php
), certifique-se de que as informações de conexão com o banco de dados estão corretas, especialmente o DB_HOST
, que deve ser o endereço IP da máquina onde o MySQL está rodando.
define('DB_HOST', 'IP_DA_MAQUINA_MYSQL');
Seguindo esses passos, você deve conseguir resolver o problema de conexão entre o WordPress e o MySQL em máquinas separadas.
Espero ter ajudado e bons estudos!