无法连接到本地mysql


Cannot connect to local mysql

我正在尝试连接到名为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):无法通过第6行/home/content/06/827406/html/beta/mysuperscript.php中的套接字"/var/lib/MySQL/sock'(2)"连接到本地MySQL服务器无法连接到数据库

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

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

如果有人有任何建议,请在下面发布。我正在努力寻求帮助,寻找更多关于哪里出了问题的信息,以及我可以做的任何解决方案。

编辑:首先,您要声明常量,因此不需要$变量语法。

$connctn=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD)

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

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

它在selectdb之间缺少一个下划线。

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

  • 咨询,并按照:http://php.net/manual/en/function.mysql-select-db.php

手册中的示例:

<?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,或使用已准备的语句查看PDO。它们要安全得多

根据您的编辑:

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

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

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

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

参考手册:

  • http://php.net/manual/en/function.mysqli-connect.php

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>";
}
?> 

您已经定义了常量,然后将它们作为变量调用。这就是错误。DB_USER、DB_PASSWORD、DB_DATABASE、DB_HOST是常量,应该像以下那样使用:DB_USER,而不是$DB_USER。

此外,我建议使用以下引号声明它们:

define ("DB_USER", "BetaPoints");

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