无法连接到本地 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');

我收到这个错误:

Notice: Undefined variable: DB_HOST in /home/content/06/8274306/html/beta/mysuperscript.php on line 6

Notice: Undefined variable: DB_USER in /home/content/06/8274306/html/beta/mysuperscript.php on line 6

Notice: Undefined variable: DB_PASSWORD in /home/content/06/8274306/html/beta/mysuperscript.php on line 6

Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2002): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/content/06/8274306/html/beta/mysuperscript.php on line 6 cannot connect to database

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

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

如果有人有任何建议 post 请在下方提出。我正在尝试寻求帮助以查找有关问题所在的更多信息以及我可以采取的任何解决方案以使其正常工作。

编辑: 首先,您要声明 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')


根据您的编辑:

Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2002): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/content/06/8274306/html/beta/mysuperscript.php on line 6 cannot connect to database

您在某个地方包含并混合了 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>";
}
?> 

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

我还建议使用这样的引号声明它们:

define ("DB_USER", "BetaPoints");

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