English 中文(简体)
Joomla Cant Connect to DB
原标题:

This sounds really easy to fix but I ve been working on it for awhile.

Database Error: Unable to connect to the database:Could not connect to MySQL

I had to make a local copy of Joomla for backup and changes so I didn t mess up the live site.

I grabbed all the files off the live site via FTP. Did a DB dump. Put the DB on my local machine, copied the Joomla files to a subfolder of my server root. Changed config variables to fit the current setup of PHP, Mysql, Apache.

Now I put in a test.php which connected and queried the DB fine.

$db = mysql_connect("localhost","root","sunshine") or die ( Unable to connect to Database! );
mysql_select_db("iweb");

$query = "SELECT * FROM jos_content LIMIT 0 , 30";
$results = mysql_query($query);
while($row = mysql_fetch_assoc($results)){
    echo  <br> .$row[ title ];
}

however when I put the same DB credentials into the configuration.php it gives the the aforementioned error.

I have been looking at the .htaccess and haven t found anything.

Anyone have an idea of what is going on here?

Joomla 1.5.4, Apache 2.2.X PHP 5.2.X on a Windows XP Professional Box.

问题回答

Try 127.0.0.1 instead of localhost. It is the same but sometimes (and in my configuration too) only ip works fine.

If you still having this problem, the easiest solution is to install JoomlaPack on your live server to backup everything. Download the zip file to your local server, unzip the file, point your web browser at the unzipped folder, and follow the instructions. If you re going to move back and forth between live and local servers, this is a must have program.

You don t need to connect manually to database using mysql_connect because joomla uses its own mechanism to connect to the database. All you need to do is to specify the db settings in the configuration.php file which is present in root of joomla installation. Once you have done that, you you run queries straight away, for example this is what you need:

$query = "SELECT * FROM jos_content LIMIT 0 , 30";
$results = mysql_query($query);
while($row = mysql_fetch_assoc($results)){
    echo  <br> .$row[ title ];
}

however when I put the same DB credentials into the configuration.php it gives the the aforementioned error.

Make sure that:

  • You specify the correct db settings
  • The configuration file is readable by Joomla, check its permissions.

Just replace

" var $dbtype = mysql ; "

with

"var $dbtype = mysqli ; "

in global configuration.

I think it works.





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...

热门标签