首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到数据库-MySQL

问无法连接到数据库-MySQL
EN

Stack Overflow用户
提问于 2015-11-26 04:39:16
回答 3查看 460关注 0票数 2

我知道这个问题已经问过很多次了,但在我搜索的所有其他帖子中,我就是找不到答案。我似乎无法连接到数据库。

如果有帮助的话,我的操作系统是Ubuntu12.04。

这是我的config.php代码

代码语言:javascript
复制
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','121212aa');
define('DB_NAME','PHP-Wizard');
?>

还有Database.php

代码语言:javascript
复制
<?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时遇到的错误

代码语言:javascript
复制
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

关于为什么我不能连接到数据库,有什么答案吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-26 06:10:32

可能的原因是您的数据库凭据错误。如果您不记得您的密码,您可以很容易地更改。正如您在其中一个注释中提到的(可以重新安装xampp修复它)。好吧,它不会改密码

参观

代码语言:javascript
复制
http://localhost/phpmyadmin
//Then visit
User > Select user and click edit privileges > Login Information

在这里,您可以用新密码覆盖旧密码。

如果您在远程服务器(Cpanel)上,可以从数据库选项中重置密码。

另外,我在代码中没有看到任何地方,包括config.php,请确保它包含在类文件中

票数 1
EN

Stack Overflow用户

发布于 2015-11-26 04:45:34

检查你的mysql凭证..。

您可以通过使用--跳过-授予-表运行服务器重新设置根密码,并以root (或sudo)的形式运行以下命令,无需密码即可登录:

代码语言:javascript
复制
# 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
票数 2
EN

Stack Overflow用户

发布于 2015-11-26 04:46:42

您可以通过转到控制台并键入:

代码语言:javascript
复制
mysql -uroot -p121212aa

如果您收到相同的错误,很可能是凭据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33930720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档