Understanding the Error
WordPress cannot connect to MySQL/MariaDB database.
Step 1: Check MySQL is Running
sudo systemctl status mysql
sudo systemctl status mariadb
# Start if stopped
sudo systemctl start mysql
Step 2: Verify Database Credentials
Check wp-config.php:
define( 'DB_NAME', 'database_name' );
define( 'DB_USER', 'database_user' );
define( 'DB_PASSWORD', 'password' );
define( 'DB_HOST', 'localhost' ); // Usually localhost
Test credentials manually:
mysql -u database_user -p -h localhost database_name
Step 3: Check MySQL User Privileges
# As root MySQL user
mysql -u root -p
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
FLUSH PRIVILEGES;
Step 4: Check Database Exists
mysql -e "SHOW DATABASES;" | grep database_name
Step 5: Disk Full
df -h
df -i # Inodes full?
Step 6: Check MySQL Port/Host
# If DB_HOST not localhost, ensure port is open
# Try using IP instead
define( 'DB_HOST', '127.0.0.1' );
Step 7: Repair Database
# Add to wp-config.php
define('WP_ALLOW_REPAIR', true);
# Visit http://yourdomain.com/wp-admin/maint/repair.php
# Remove line after repair
Step 8: Check for Corrupted Tables
mysqlcheck -u root -p --auto-repair --all-databases