I am having the same problem.
Runing MySql ver 5.0.15
PHP ver 4.3.10-16
Apache2 2.0.54
test.php bundled with php reports
MySQL_api 4.0.24
Before running the wordpress install.php script, the expected MySql database was created. This is a new install, there are NO TABLES CREATED YET! No instructions for doing so, none have been discovered. Looking through the wordpress scripts, I haven’t yet found where these tables will be created. In wp-settings.php these table names are listed, but no columns defined/declared.
No previous version of wordpress has ever been installed, so no existing database/tables present. The blank database expected in the 5 minute install was created, but no tables. (This is on a home LAN, not public.)
Running the install script with wp-config.php properly edited to provide hostname, user, password, database name results in “Can not connect to database error”. MySQL user tables with correct privileges are present. Both “OLD_PASSWORD”, and “PASSWORD” have been tried. WordPress can not connect with either password format.
(Yes, I am sure that MySql is running.)
Running the install script with wp-config.php not present, setup-config.php properly detects the missing file, and offers to create one. After filling in the necessary entries for hostname, user, password, database, and “submit”ing the data, setup-config.php fails at step 2 with this same error.
Warning: Cannot modify header information – headers already sent by (output started at /storage/Debian/wordpress/wp-admin/setup-config.php:22) in /storage/Debian/wordpress/wp-includes/wp-db.php on line 308
I have seen the previous tip about white space, missing php tags, etc. Looking at setup-config.php I’m having trouble decrypting the nested code blocks in the three cases present.
Note Appended: Looking at the scattered headers coded into various php scripts it occurs to me that it might be a better coding practice to have ONE FUNCTION that builds/outputs the required html header, and that ONE FUNCTION be called in each case when a header is appropriate, rather than having headers hand coded into various scripts multiple times.
Just a thought.