• Hello
    I have a compute engine on GCP with httpd 2.4 and php 8.0.30
    On the same GCP project, I created a db mysql 8.0.40.

    And when I want install wordpress, I fill out the forms with dbname, username, host,…
    But after I have an error: Error establishing a database connection.

    I try to connect with client mysql from my compute engine and the connection is successfull.

    I have no logs!

    Could you help me?

    Thanks

Viewing 3 replies - 1 through 3 (of 3 total)
  • I don’t know what GCP is, but maybe the MySQL service is running on a different port there. Check the details you have for the connection again – including the host and the port.

    Thread Starter maxwello62

    (@maxwello62)

    Hello
    The port is 3306, defaut port

    Mahmoud Agwa

    (@mahmoudagwa901)

    It seems like your WordPress installation is unable to connect to your MySQL database, despite being able to connect via the MySQL client. Let’s go through a few troubleshooting steps:

    1. Check Database Credentials:
      • Ensure that the database name, username, password, and host in your wp-config.php file are correct.
      • The DB_HOST setting in wp-config.php should typically be the IP address or hostname of the MySQL server. If the MySQL instance is within the same GCP project, you might use something like localhost or the internal IP address of the database instance.
      Example: define( 'DB_NAME', 'your_db_name' ); define( 'DB_USER', 'your_db_user' ); define( 'DB_PASSWORD', 'your_db_password' ); define( 'DB_HOST', 'your_db_host_or_localhost' );
    2. Check MySQL User Permissions:
      • Make sure that the MySQL user you’re using to connect to the database has the necessary permissions (SELECT, INSERT, UPDATE, DELETE) for the WordPress database.
      • Run the following query to grant permissions: GRANT ALL PRIVILEGES ON your_db_name.* TO 'your_db_user'@'%' IDENTIFIED BY 'your_db_password'; FLUSH PRIVILEGES;
      • This allows connections from any host. You can change % to the IP of your compute engine if you want to restrict access.
    3. Check MySQL Configuration:
      • MySQL needs to allow remote connections if it’s on a different machine.
      • Ensure that the MySQL server is configured to listen on all interfaces (not just localhost). Check the my.cnf file (usually found in /etc/mysql/my.cnf or /etc/my.cnf): bind-address = 0.0.0.0
      • After changing, restart MySQL: sudo systemctl restart mysql
    4. Firewall/Networking Configuration:
      • Ensure that the firewall rules allow traffic on MySQL’s default port (3306) between your compute engine and MySQL instance.
      • On GCP, check the firewall rules and ensure that the necessary ports are open.
      • If MySQL is hosted on a Google Cloud SQL instance, ensure that the compute engine has the right permissions to access it via the Cloud SQL API.
    5. Test Connection:
      • You mentioned that the MySQL client works. Try connecting from the command line on the compute engine: mysql -u your_db_user -p -h your_db_host_or_localhost your_db_name
      • This should work without issues if all configurations are correct. If this fails, you will get more specific error messages that can help diagnose the problem.
    6. Error Logs:
      • Check the MySQL logs and Apache logs for any errors that might give more information about what’s going wrong. For Apache, check: /var/log/apache2/error.log
      • For MySQL logs: /var/log/mysql/error.log
    7. WordPress Debugging:
      • Enable WordPress debugging by adding the following to your wp-config.php file to get more detailed error messages: define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );

    If you’ve gone through all these steps and the issue persists, there may be a specific networking or configuration problem between your compute engine and the MySQL instance. Let me know if you encounter any specific error messages along the way, and I can assist further.

Viewing 3 replies - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.