无法连接到本地mysql

时间:2015-03-01 20:07:20

标签: php mysql database-connection

我正在尝试连接到名为BetaPoints的数据库。所有凭据都以

的格式位于php文件名EstablishAccess.php
<?php
  define (DB_USER, "BetaPoints");
  define (DB_PASSWORD, "password!");
  define (DB_DATABASE, "BetaPoints");
  define (DB_HOST, "hostname");
?>

我正在尝试使用此

连接到数据库
$connctn=mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD)
or die("cannot connect to database");
mysql_selectdb('BetaPoints')
or die('cannot select database');

我收到此错误:

  

注意:未定义的变量:第6行/home/content/06/8274306/html/beta/mysuperscript.php中的DB_HOST

     

注意:未定义的变量:第6行/home/content/06/8274306/html/beta/mysuperscript.php中的DB_USER

     

注意:未定义的变量:第6行/home/content/06/8274306/html/beta/mysuperscript.php中的DB_PASSWORD

     

警告:mysqli_connect()[function.mysqli-connect] :( HY000 / 2002):无法通过socket&#39; /var/lib/mysql/mysql.sock'连接到本地MySQL服务器; (2)在第6行的/home/content/06/8274306/html/beta/mysuperscript.php中   无法连接到数据库

我在变量中查找错误,并且已使用我为这些变量定义的凭据多次登录,但仍然无法找到错误。

据我所知,它不能连接到本地MySQL数据库,它不是本地数据库。

如果任何人有任何建议,请在下面发布。我正在努力寻求帮助,以找到有关出错的更多信息以及我可以采取的任何解决方案。

2 个答案:

答案 0 :(得分:3)

修改:首先,您宣布constants,因此不需要$变量语法。

$connctn=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD)

因此,请确保您为所有常量使用正确的数据。

此外,mysql_selectdb('BetaPoints')的语法不正确。

它错过了selectdb之间的下划线。

使用mysql_select_db('BetaPoints')mysql_select_db('BetaPoints', $connctn)

根据手册的例子:

<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}
?>

但是,mysql_函数已弃用,将从以后的版本中删除。

使用die('Not connected : ' . mysql_error())代替or die('cannot select database')


根据您的编辑:

  

警告:mysqli_connect()[function.mysqli-connect] :( HY000 / 2002):无法通过socket&#39; / var / lib / mysql / mysql连接到本地MySQL服务器。袜子&#39; (2)在第6行的/home/content/06/8274306/html/beta/mysuperscript.php中无法连接到数据库

您将mysqli_函数与mysql_函数混合在一起,并且您没有告诉我们您是如何使用这些函数的。

  • 这些不同的API不会相互混合。

仅使用一个MySQL API;不是两个。

请参阅手册:

mysqli_connect()手册中的示例:

<?php
//conection:
$link = mysqli_connect("myhost","myuser","mypassw","mydb") 
or die("Error " . mysqli_error($link));

//consultation:

$query = "SELECT name FROM mytable" 
or die("Error in the consult.." . mysqli_error($link));

//execute the query.

$result = mysqli_query($link, $query);

//display information:

while($row = mysqli_fetch_array($result)) {
  echo $row["name"] . "<br>";
}
?> 

答案 1 :(得分:0)

您已经定义了常量,然后将它们称为变量。那是错误的。 DB_USER,DB_PASSWORD,DB_DATABASE,DB_HOST是常量,应该像:DB_USER而不是$ DB_USER一样使用。

另外,我建议使用这样的引号声明它们:

define ("DB_USER", "BetaPoints");

然后,正如另一位用户首先评论的那样,mysql_selectdb语法错误。正确的语法是mysql_select_db(“db_name”);