Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL/Apache Error in PHP MySQL query

Tags:

php

mysql

apache

I am getting the following error:

Access denied for user 'apache'@'localhost' (using password: NO)

When using the following code:

<?php  include("../includes/connect.php");  $query = "SELECT * from story";  $result = mysql_query($query) or die(mysql_error());  echo "<h1>Delete Story</h1>";  if (mysql_num_rows($result) > 0) {     while($row = mysql_fetch_row($result)){           echo '<b>'.$row[1].'</b><span align="right"><a href="../process/delete_story.php?id='.$row[0].'">Delete</a></span>';       echo '<br /><i>'.$row[2].'</i>';     } } else {    echo "No stories available."; } ?> 

The connect.php file contains my MySQL connect calls that are working fine with my INSERT queries in another portion of the software. If I comment out the $result = mysql_query line, then it goes through to the else statement. So, it is that line or the content in the if.

I have been searching the net for any solutions, and most seem to be related to too many MySQL connections or that the user I am logging into MySQL as does not have permission. I have checked both. I can still perform my other queries elsewhere in the software, and I have verified that the account has the correct permissions.

like image 463
Mesidin Avatar asked Aug 05 '08 21:08

Mesidin


People also ask

How can I get MySQL error code in PHP?

Instead, use mysql_errno() to retrieve the error code. Note that this function only returns the error code from the most recently executed MySQL function (not including mysql_error() and mysql_errno()), so if you want to use it, make sure you check the value before calling another MySQL function.

What is Apache PHP MySQL?

LAMP is an open source Web development platform that uses Linux as the operating system, Apache as the Web server, MySQL as the relational database management system and PHP as the object-oriented scripting language.

What is Windows Apache MySQL PHP?

Windows/Apache/MySQL/PHP, Python, PERL (WAMP) is a set of web applications combined with Microsoft Windows OS to be used in web environments constituting a server stack. The WAMP stack provides developers and administrators with the four elements of a web server: an OS. a web server.


2 Answers

And if it matters at all, apache@localhost is not the name of the user account that I use to get into the database. I don't have any user accounts with the name apache in them at all for that matter.

If it is saying 'apache@localhost' the username is not getting passed correctly to the MySQL connection. 'apache' is normally the user that runs the httpd process (at least on Redhat-based systems) and if no username is passed during the connection MySQL uses whomever is calling for the connection.

If you do the connection right in your script, not in a called file, do you get the same error?

like image 142
dragonmantank Avatar answered Sep 20 '22 23:09

dragonmantank


Change the include() to require(). If the "connect.php" file can't be require()d, the script will fail with a fatal error, whereas include() only generates a warning. If the username you're passing to mysql_connect() isn't "apache", an incorrect path to the connect script is the most common way to get this type of error.

like image 39
Piskvor left the building Avatar answered Sep 20 '22 23:09

Piskvor left the building