我正在使用共享Linux托管,而我写的一些PHP将无法在服务器上使用我的数据库。
编辑:
我解决了这个问题。我不小心从配置文件中删除了“数据库”连接变量。哇。这对我来说很愚蠢。
编辑:
不工作,我的意思是我无法读取数据库。我已经搞砸了,知道数据库正在运行,当我修改密码变量时,我得到'拒绝访问'。此外,在localhost上,密码是不同的,它的工作原理。
编辑2: 我现在正在使用示例脚本。它现在显示一个空白页面。至少没有错误......我将密码更改为字母数字。我没有使用'localhost'。
编辑3:使用正确的密码和服务器信息,我使用mysql_error()得到以下错误。我没有在数据库网址中使用前导http://。
无法通过socket'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(2)
编辑4:
这是我的连接代码。请注意nl()
和report()
是分别回显换行符和诊断消息的预定义函数。连接变量位于外部文件中,包含在上面。我已经检查过 - 包含工作正常。
//////////////////////////////
// Connect to the database /////////////////////////////////////////
//////////////////////////////
//report - Attemting to establish connection ...
report(4);
////
//Step 1) Set connection in variable
////
$conn = mysql_connect($server, $user, $pass);
////
// Step 2) Verify the connection
////
if(!$conn){
//report - failed, see next line...
report(5);
//report - FATAL ERROR: Check database name, username and password.
report(9);
}else{
//report - done!
report(7);
}
//report - Selecting database ...
report(6);
////
// Step 3) Select the database
////
$db_select = mysql_select_db($database);
////
// Step 4) Verify successful selection
////
if(!$db_select){
//report - failed, see next line...
report(5);
//report - FATAL ERROR: Could not select database.
report(8);
}else{
//report - done!
report(7);
}
//report - Running query ...
report(10);
////
// Step 5) Create the original the query
////
$selector = " * ";
$target = "`properties`";
$condition = "1";
$sql = "SELECT " . $selector . " FROM " . $target . " WHERE " . $condition;
////
// Step 6) Check for a $_GET[] parameter
////
if($_GET['listing'] && !is_null($_GET['listing'])){ //if a listing number was supplied
$listingNum = htmlentities($_GET['listing']); //safety first - clean it from code injections
$pattern = '/\b[0-9]{1,6}\b/'; //define a range of valid, sercheable listings
if(preg_match($pattern,$listingNum) == 1){ //if the listing id is a valid one
$sql .= " AND `listing_id` =" .$listingNum . ""; //search for it in the database
}elseif($exp == 0){ //if the listing number is out of range
if($listingNum != "all"){ //check if the "all" keyword was ommitted - if it was not supplied.
//report - failure ... see below
report(5);
//report - Invalid listing ID
report(12);
//
// Invalid Listing ID...
//
}
}
}else if(!$_GET['listing']){
//report - failure ... see below
report(5);
//report - Invalid listing ID
report(12);
//
//No listing ID
//
}
if(!$sql){
//report - failed, see next line...
report(5);
//report - FATAL ERROR: Could not run query.
report(11);
//
// For some reason the query doesn't exist here. I really do wonder why.
//
}else{
//report - done!
report(7);
nl();
}
$result = mysql_query($sql); //perform the actual query
if(!$result){
echo("There's been some sort of error with the search lookup. Here are the details: \n" . mysql_error());
}
mysql_close($conn); //close the connection to the SQL server
答案 0 :(得分:3)
您是否在mysql连接中使用“ localhost ”?
大多数托管服务在不同的机器上托管mysql,而且通常localhost不起作用,需要输入服务器提供的确切URL。
密码中的字符“#”不应该有问题,但是你的密码应该在'123#123'之内,我不确定123#123是否有效。
答案 1 :(得分:2)
对于GoDaddy,您必须不使用localhost
作为数据库服务器。数据库下有示例PHP代码 - > MySQL在主机管理器中可以提供帮助。
答案 2 :(得分:0)
您以前访问过数据库吗?你有安装phpMyAdmin吗?哈希不应该是问题。如果它允许您将其设置为密码,那么您可以确定登录。你会发布你正在使用的代码,以便我们检查一下吗?
答案 3 :(得分:0)
我已经使用了GoDaddy一次或两次(糟糕的服务顺便说一句),只要我记得,mysql主机,即98%localhost
,应该设置为另一台主机,但我是不确定。也许你应该开始检查那里。
答案 4 :(得分:0)
自我注意:
下次出现类似情况时,请确认您在MySQL中选择的数据库