[英]Can't connect to Database-MySQL
我知道这个问题已经被问过很多次了,但是在我搜索过的所有其他帖子中,我只是找不到答案。 我似乎无法连接到数据库。
如果有帮助,我的操作系统是Ubuntu 12.04。
这是我的config.php
代码:
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','121212aa');
define('DB_NAME','PHP-Wizard');
?>
还有Database.php
<?php
class Database{
public $host = DB_HOST;
public $username = DB_USER;
public $password = DB_PASS;
public $db_name = DB_NAME;
public $link;
public $error;
/*
* Class Constructor
*/
public function __construct(){
//Call Connect Function
$this->connect();
}
/*
* Connector
*/
private function connect(){
$this->link = new mysqli($this->host, $this->username, $this->password, $this->db_name);
if(!$this->link){
$this->error = "Connection Failed: ".$this->link->connect_error;
return false;
}
}
/*
* Select
*/
public function select($query){
$result = $this->link->query($query) or die($this->link->error.__LINE__);
if($result->num_rows > 0){
return $result;
} else {
return false;
}
}
/*
* Insert
*/
public function insert($query){
$insert_row = $this->link->query($query) or die($this->link->error.__LINE__);
//Validate Insert
if($insert_row){
header("Location: index.php?msg=".urlencode('Record Added'));
exit();
} else {
die('Error : ('. $this->link->errno .') '. $this->link->error);
}
}
/*
* Update
*/
public function update($query){
$update_row = $this->link->query($query) or die($this->link->error.__LINE__);
//Validate Insert
if($update_row){
header("Location: index.php?msg=".urlencode('Record Updated'));
exit();
} else {
die('Error : ('. $this->link->errno .') '. $this->link->error);
}
}
/*
* Delete
*/
public function delete($query){
$delete_row = $this->link->query($query) or die($this->link->error.__LINE__);
//Validate Insert
if($delete_row){
header("Location: index.php?msg=".urlencode('Record Deleted'));
exit();
} else {
die('Error : ('. $this->link->errno .') '. $this->link->error);
}
}
这是我尝试打开index.php
时遇到的错误
Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in /opt/lampp/htdocs/Forum/Database.php on line 23
Warning: mysqli::query(): Couldn't fetch mysqli in /opt/lampp/htdocs/Forum/Database.php on line 35
Warning: Database::select(): Couldn't fetch mysqli in /opt/lampp/htdocs/Forum/Database.php on line 35
关于为什么我无法连接到数据库的任何答案?
检查您的MySQL凭证...。
您可以通过使用--skip-grant-tables运行服务器来重置根密码,并通过以root身份运行以下命令(或使用sudo)来不使用密码登录:
# service mysql stop
# mysqld_safe --skip-grant-tables &
$ mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
# service mysql stop
# service mysql start
$ mysql -u root -p
可能的原因是您的数据库凭据错误。 如果您忘记了密码,则可以轻松更改。 正如您在评论之一中提到的(可以重新安装xampp修复它)。 好吧,它不会尝试更改密码
访问
http://localhost/phpmyadmin
//Then visit
User > Select user and click edit privileges > Login Information
在这里您可以用新密码覆盖旧密码
如果您位于远程服务器(Cpanel)上,则可以从数据库选项中重置密码
我也看不到您的代码中的任何地方包括config.php
确保它包含在您的类文件中
您可以通过转到控制台并键入以下命令来检查您的凭据是否正确:
mysql -uroot -p121212aa
如果您遇到相同的错误,则很可能是凭据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.