Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leandro Gomes da Silva

[Resolvido] Access denied for user

Recommended Posts

Pessoal, estou desenvolvendo um sisteminha em PHP apenas para aprendizado. Mas não estou conseguindo fazer as conexões com o banco de dados MySql... O erro que dá é

Warning: mysql_query(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/acervomusical/models/database.php on line 74 Warning: mysql_query(): A link to the server could not be established in /var/www/acervomusical/models/database.php on line 74 Access denied for user 'www-data'@'localhost' (using password: NO)

 

Na linha 74 possui:

$this->query = mysql_query($this->sql) or die(mysql_error());

 

Já chequei várias e várias vezes os dados para conexão

$this->host = "localhost";
       $this->user = "root";
       $this->pass = "12345";
       $this->dBase = "collection";

       mysql_connect($this->host, $this->user, $this->pass);
       mysql_select_db($this->dBase);

 

A senha é a mesma que uso para logar no MySql através do terminal do Ubuntu. O que eu faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o usuario eh q esta errado, tente logar no phpmyadmin, ele ta dizendo q o acesso foi negado para o usuario www-data, ou seja, no caso do ubuntu o usuario www-data eh o proprio apache...se a senha ta certa, o usuario esta errado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse usuário não existe la no phpmyadmin... o que eu tenho aqui é:

 

Usuário Servidor Senha Privilégios globais Conceder/Grant

debian-sys-maint localhost Sim ALL PRIVILEGES Sim

phpmyadmin localhost Sim USAGE Não

root 127.0.0.1 Sim ALL PRIVILEGES Sim

root Leandro-Ubuntu Sim ALL PRIVILEGES Sim

root localhost Sim ALL PRIVILEGES Sim

 

Prog, apenas uma... Você querem que eu poste o código completo aqui?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue o código

 

dataBase.php

<?php

class dataBase {

   private $host;
   private $user;
   private $pass;
   private $dBase;
   private $queryFields = NULL;
   private $queryValues = NULL;
   private $queryIquality = NULL;
   private $sql;
   private $query;
   public $table;
   public $fields; //array
   public $values; //array
   private $connection;

   public function __construct() {
       $this->connection();
   }

   private function connection() {
       $this->host = 'localhost';
       $this->user = 'root';
       $this->pass = '12345';
       $this->dBase = 'collection';

       mysql_connect($this->host, $this->user, $this->pass) or die(mysql_error());
       mysql_select_db($this->dBase);
   }

   //$type == 1 -> Insert
   //$type == 2 -> Update
   //$type == 3 -> Delete
   private function buildQuery($type) {
       $cont = count($this->fields);

       for ($i = 0; $i < $cont; $i++) {
           //Se tiver mais de 1
           if ($i < $cont - 1) {
               if ($type == 1) {
                   $this->queryFields .= $this->fields[$i] . ", ";
                   $this->queryValues .= "'" . $this->values[$i] . "', ";
               } elseif ($type == 2) {

               } elseif ($type == 3) {
                   //$this->queryFields .= $this->fields[$i] . "=" . "'" .
                   //      $this->values[$i] . "' AND ";
               }
               //Se tiver apenas 1
           } else {
               if ($type == 1) {
                   $this->queryFields .= $this->fields[$i];
                   $this->queryValues .= "'" . $this->values[$i] . "'";
               } elseif ($type == 2) {

               } elseif ($type == 3) {
                   $this->queryIquality .= $this->fields[$i] . "=" . "'" .
                           $this->values[$i] . "'";
               } elseif ($type == 4) {
                   $this->queryIquality .= $this->fields[$i] . "=" . "'" .
                           $this->values[$i] . "'";
               }
           }
       }
   }

   public function insertValues() {
       $this->buildQuery(1);

       $this->sql = "INSERT INTO " . $this->table . " (" . $this->queryFields .
               ") VALUES (" . $this->queryValues . ")";
       $this->query = mysql_query($this->sql) or die(mysql_error());
       $this->result = mysql_affected_rows();

       return $this->result;
   }

   public function updateValues() {

   }

   public function deleteValues() {
       $this->buildQuery(3);

       $this->sql = "DELETE FROM " . $this->table . " WHERE " .
               $this->queryFields;
       $this->query = mysql_query($this->sql);
       $this->result = mysql_affected_rows();

       return $this->result;
   }

   public function selectValues($string) {
       $this->buildQuery(4);

       $this->sql = "SELECT * FROM " . $this->table . " WHERE " .
               $this->queryIquality . " ORDER BY " . $string . " ASC";
       $this->query = mysql_query($this->sql);
       $this->result = mysql_affected_rows();

       return $this->result;
   }

}

?>

 

music.php

<?php

require_once ("database.php");

class music extends dataBase {

   private $track;
   private $alb_id;
   private $title;
   private $artist;

   function __construct() {

   }

   public function setTrack($int) {
       $this->track = $int;
   }

   public function setAlb_id($int) {
       $this->alb_id = $int;
   }

   public function setTitle($string) {
       $this->title = $string;
   }

   public function setArtist($string) {
       $this->artist = $string;
   }

   public function getTrack() {
       return $this->track;
   }

   public function getAlb_id() {
       return $this->alb_id;
   }

   public function getTitle() {
       return $this->title;
   }

   public function getArtist() {
       return $this->artist;
   }

   public function insert() {
       $this->table = "music";
       $this->fields = array("track", "alb_id", "title", "artist");
       $this->values = array($this->getTrack(), $this->getAlb_id(),
           $this->getTitle(), $this->getArtist());
       $result = $this->insertValues();

       return $result;
   }

   public function delete($id) {
       $this->fields = array("id");
       $this->values = array($id);
       $result = $this->deleteValues();

       return $result;
   }

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho um formulário

<form action="../controllers/musicController.php" method="post">
   <input type="hidden" name="action" value="insert">
   Artista: <input type="text" size="30" name="artist"><br />
   Título: <input type="text" size="5" name="title"><br />
   Número da música: <input type="text" size="15" name="track">
   Álbum id: <input type="text" size="15" name="alb_id">
   <p><input type="submit" value="Gravar"></p>
</form>

 

musicController.php

<?php

require_once ("../models/music.php");

class musicController {

   private $cadastre;

   public function __construct() {
       $this->cadastre = new music();

       $action = $_POST['action'];
       if ($action == "insert") {
           $this->insert();
       }
   }

   private function insert() {
       $this->cadastre->setAlb_id($_POST['alb_id']);
       $this->cadastre->setArtist($_POST['artist']);
       $this->cadastre->setTitle($_POST['title']);
       $this->cadastre->setTrack($_POST['track']);

       $result = $this->cadastre->insert();

       if ($result >= 1) {
           echo "<script>alert('Registro incluído com sucesso!');
               document.location='../view/cad_cadastro.php'</script>";
       } else {
           echo "<script>alert('Erro ao gravar registro!');
               history.back()</script>";
       }
   }
}

new musicController();

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

1º passo

 

Acredito que seja devido a falta do resource , o segundo parâmetro da função: mysql_query

resource mysql_query ( string $query [, resource $link_identifier ] )

 

Analisando o que postou, se o usuário e senha estivessem errados, a falha ocorreria já no momento da autenticação.

mysql_connect($this->host, $this->user, $this->pass);

 

Quando executa mysql_query, não está especificando o resource. Quando isso ocorre, o sistema utiliza o usuário default, no caso da distribuição Ubuntu que está usando, é www-data

$this->query = mysql_query($this->sql) or die(mysql_error());

 

 

Sugestão de correção:

 

<?php

class dataBase {

   private $host;
   private $user;
   private $conn = false; // connection handler

//... abaixo segue o restante do código normal

 

 

// atribuindo o resource ao handler
$this -> conn = mysql_connect($this->host, $this->user, $this->pass);

 

// especificando o resource na função de execução da query
$this->query = mysql_query($this->sql, $this -> conn) or die(mysql_error());

 

 

alternativa junk

 

outro modo de resolver de modo simples sem mexer nada no código é especificar o usuário e senha diretamente no php.ini... Desse modo seriam usados como padrão, sem necessidade especificar o resource no momento de executar uma query.

Mas não é recomendado.

 

 

 

 

2º passo

(não necessário caso o primiero passo resolva)

 

 

no terminal

 

> mysql -u root -p
mysql> use mysql;
mysql> SELECT Host,Db,User FROM db;

 

ou

 

 mysql -u root -p
mysql> use mysql;
mysql> SELECT * FROM user;

 

 

apenas para ver se existe o usuário

 

mas se o phpmyadmin está acessando, creio que não seja esse o problema.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.