Et si cela compte, apache@localhost n'est pas le nom du compte utilisateur que j'utilise pour accéder à la base de données. Je n'ai d'ailleurs aucun compte d'utilisateur avec le nom apache.
S'il indique 'apache@localhost', le nom d'utilisateur n'est pas correctement transmis à la connexion MySQL. 'apache' est normalement l'utilisateur qui exécute le processus httpd (au moins sur les systèmes basés sur Redhat) et si aucun nom d'utilisateur n'est transmis lors de la connexion, MySQL utilise celui qui appelle pour la connexion.
Si vous faites la connexion directement dans votre script, pas dans un fichier appelé, obtenez-vous la même erreur ?