Erreur mysql (28000/1045)

Fermé
Freeman89 Messages postés 8 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 11 novembre 2012 - 28 oct. 2012 à 21:03
Freeman89 Messages postés 8 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 11 novembre 2012 - 11 nov. 2012 à 22:50
Bonjour à tous,

Alors voilà, je vous explique mon problème. Une amie dispose d'un blog web relativement ancien et à la dérive (la personne en charge du site est partie du jour au lendemain sans explication). Le blog est hébergé par Mavenhosting et géré via cPanel X.
C'est alors que j'entre en scène et ma mission est plutôt simple :

Faire en sorte que le blog reparte de zéro (rien de l'ancien blog n'est conservé à part le nom de domaine) et qu'il soit géré via Wordpress.

Armé de l'identifiant et mdp cPanel X, j'ai commencé à bidouiller (avec des connaissances frôlant le zéro absolu dans ce domaine). J'ai alors supprimé l'ancienne Base de données MySQL via cPanel et utilisé Fantastico De Luxe pour en créer une nouvelle adaptée à Wordpress. Je dispose donc d'une base de données en blablabla_wrdp1.
Seulement lorsque je souhaite me connecter au site via http://ww5.domdoo.net/ j'obtiens ce message d'erreur :

Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'sorbonne_user'@'localhost' (using password: YES) in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 173

Warning: MySQL::__construct() [mysql.--construct]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 187

Warning: mysqli::set_charset() [mysqli.set-charset]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/include.inc.php on line 95

Warning: mysqli::real_escape_string() [mysqli.real-escape-string]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 453

Warning: mysqli::query() [mysqli.query]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 342

Warning: mysqli::query() [mysqli.query]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 342

Warning: mysqli::query() [mysqli.query]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 342

Warning: mysqli::real_escape_string() [mysqli.real-escape-string]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 453

Warning: mysqli::query() [mysqli.query]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 342

Warning: mysqli::real_escape_string() [mysqli.real-escape-string]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 453

Warning: mysqli::query() [mysqli.query]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 342

Warning: mysqli::close() [mysqli.close]: Couldn't fetch MySQL in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 212




Je cherche donc le fichier mysql.cla.php. À l'ouverture de ce dernier, je dois bien admettre que je n'y comprends rien. En voici une copie :




<?php
/**
* @desc Classe étendue de MySQLi.
*
* @uses MYSQL_CHAR_SET
* @uses MYSQL_HOST
* @uses MYSQL_NAME
* @uses MYSQL_PASS
* @uses MYSQL_USER
* @uses MySQLi
* @package MySQL
* @author DocBu
* @version 2010-10-01
*/

/**
* @desc Classe étendue de MySQLi.
* @see https://www.php.net/manual/en/class.mysqli.php
* @uses MYSQL_CHAR_SET
* @uses MYSQL_HOST
* @uses MYSQL_USER
* @uses MYSQL_PASS
* @uses MYSQL_NAME
* @uses MySQLi
* @package MySQL
* @author DocBu
* @version 2010-10-01
*/
final class MySQL extends MySQLi {
/**
* @desc Displays calls to the class.
* @var boolean
*/
const debug = false;
/**
* @desc Displays text information.
* @var boolean
*/
const debug_info = true;
/**
* @desc Displays array of information.
* @var boolean
*/
const debug_pre = false;
/**
* @desc Displays MySQL requests.
* @var boolean
*/
const debug_request = false;
/**
* @desc Displays MySQL results.
* @var boolean
*/
const debug_result = false;
/**
* @desc MySQL database's character set.
* @access private
* @var string default UTF-8
*/
private static $charset = MYSQL_CHAR_SET;
/**
* @desc Singleton
* @var MySQLi
*/
private static $singleton = null;
/**
* @desc MySQL database's hostname.
* @access private
* @var string
*/
private static $host = null;
/**
* @desc MySQL database's name.
* @access private
* @var string
*/
private static $name = null;
/**
* @desc MySQL database user's password.
* @access private
* @var string
*/
private static $pass = null;
/**
* @desc MySQL database port.
* @access private
* @var string
*/
private static $port = null;
/**
* @desc MySQL database socket.
* @access private
* @var string
*/
private static $socket = null;
/**
* @desc MySQL database user's name.
* @access private
* @var string
*/
private static $user = null;
/**
* @desc MySQL requests execution time.
* @access private
* @var integer
*/
private static $time = 0;
/**
* @desc Controls whether "magic quote" is used.
* @access private
* @var boolean
*/
private static $magic_quote = false;
/**
* @desc Requests list.
* @access private
* @var array
*/
private static $list = array();
/**
* @desc Request numbers.
* @access private
* @var integer
*/
private static $number = 0;

/**
* @desc Class constructor.
* @see https://www.php.net/manual/fr/book.mysqli.php
* @final
* @access public
* @uses parent::__constructt()
* @uses get_magic_quotes_gpc()
* @param string $host
* @param string $user
* @param string $pass
* @param string $name
* @param mixed $port
* @param mixed $socket
* @param mixed $charset
* @return void
*/
final public function __construct(
$host,
$user,
$pass,
$name,
$port = null,
$socket = null,
$charset = null
) {
if(self::debug) {
echo '<div class="dbg cla">'.__METHOD__.'('.(DEV>0 ? $host.','
.$user.','.$pass.','.$name.','.$port.','.$socket.','.$charset : '')
.') ';
}

self::$host = is_string($host)&&!empty($host) ? $host : null;
self::$user = is_string($user)&&!empty($user) ? $user : null;
self::$pass = is_string($pass)&&!empty($pass) ? $pass : null;
self::$name = is_string($name)&&!empty($name) ? $name : null;
self::$port = is_numeric($port) ? $port : null;
#self::$socket = is_boolean($socket) ? $socket : null;
self::$charset = is_string($charset)&&!empty($charset) ? $charset : null;

parent::__construct(
self::$host,
self::$user,
self::$pass,
self::$name,
self::$port,
self::$socket
);

/**
* Test $mysqli->connect_errno is the "official" OO way to do it, BUT
* was broken for PHP < 5.3.0.
* Use procedural way if you need to ensure compatibility with
* PHP < 5.3.0.
* $mysqli->connect_errno est le style POO "officiel" mais était erroné
* jusqu'à PHP < 5.3.0.
* Utilisez le style procédural pour assurer la compatibilité avec
* PHP < 5.3.0.
* @see http://www.php.net/manual/en/mysqli.connect.php
*/
#if(mysqli_connect_error()) {
if($this->error) {
$rtn = false;
if(self::debug||DEV>0) {
echo '<p class="err">#'.$this->errno.': '
.$this->error.'</p>';
exit();
}
else {
header('Location: '.HOST.'/pages/error-500.html');
exit();
}
}

self::$magic_quote = get_magic_quotes_gpc();

if(self::debug) { echo '</div>'; }
}

/**
* @desc Class' destructor.
* @access public
* @uses MySQLi::close()
* @return void
*/
public function __destruct() {
parent::close();
if(self::debug) {
echo '<div class="dbg cla">MySQL->__destruct() '
.(self::debug_info ? '<p class="inf">'
. self::$number.' request(s) in '.round(self::$time*1000,2).'ms.'
. '</p>' : '')
.(self::debug_pre ? '<pre class="inf">'
. htmlentities(print_r(self::$list,true),ENT_QUOTES,CHAR_SET)
. '</pre>' : '').'</div>';
}
}

final public static function get() {
if(!self::$singleton) {
self::$singleton = new self();
}
self::$singleton;
}

/**
* @desc Closes MySQL database connection.
* @final
* @access public
* @uses __destruct()
* @return boolean
*/
final public function close() {
$rtn = self::__destruct();
if(self::debug) {
echo '<div class="dbg cla">MySQL->close() '
.'<b>return</b> '.intval($rtn).'</div>';
}
return $rtn;
}

/**
* @desc Requests database with specified query.
* If $return_result is true, result are returned as array.
* @final
* @access public
* @uses mysqli::query()
* @param string $request
* @param boolean $return_result
* @return mixed
*/
final public function query($request,$return_result = false) {
if(self::debug) {
echo '<div class="dbg cla">MySQL->query('request','
.intval($return_result).') ';
self::$list[self::$number]['request'] = $request;
$start_time = microtime(true);
}

$rtn = parent::query($request);

if(self::debug) {
$time = microtime(true)-$start_time;
self::$time += $time;
$time = round($time*1000,2);
self::$list[self::$number]['time'] = $time;
self::$number++;
}
if($rtn) {
if(preg_match('/\bINSERT\b|\bUPDATE\b|\bREPLACE\b|\bDELETE\b/i',$request)) {
/**
* La fonction mysqli_insert_id() retourne l'identifiant généré
* par une requête sur une table avec une colonne possédant
* l'attribut AUTO_INCREMENT.
* Si la dernière requête n'était ni un INSERT, ni un UPDATE ou
* que la table modifiée ne possède pas de colonne avec
* l'attribut AUTO_INCREMENT, cette fonction retournera zéro.
*/
$rtn = true;
if(
self::debug&&
self::debug_info&&
false!==preg_match('/\bINSERT\b/i',$request)
) {

}
}
elseif($return_result) {
# Must use mysqli::fetch_all() with mysqlnd
#$rows = $rtn->fetch_all(MYSQLI_ASSOC);
$rtn->data_seek(0);
for($i=0;$i<$rtn->num_rows;$i++) {
$rows[] = $rtn->fetch_object();
$rtn->data_seek($i+1);
}
$rtn->close();
$rtn = $rows;
}
if($rtn instanceof MySQLi_Result) {
$rtn->close();
}
}

if(self::debug) {
echo /*(false===$rtn ? '<p class="err">MySQL error #'
. parent::errno.' : '.parent::error.'</p>' : '')*/
(self::debug_request ? '<p class="rqt">'.$request.'</p>' : '')
#.(self::debug_info ? '<p class="inf">'.intval($this->num_rows)
#. ' row(s) in '.$time.'ms.</p>' : '')
.'<b>return</b> '.($rtn instanceof MySQLi_Result ? ''
.'MySQLi_Result' : intval($rtn)).'</div>';
}
return $rtn;
}

final public function q($request,$parameters = array()) {
if(self::debug) {
echo '<div class="dbg cla">'.__METHOD__.'('.$request.','
.$parameters.') ';
}
$rtn = false;
if(is_string($request)&&!empty($request)) {
$n = is_array($parameters) ? count($parameters) : 0;
if($n>0) {
for($i=0;$i<$n;$i++) {
if(is_string($parameters[$i])) {
$parameters[$i] = self::e($parameters[$i]);
}
}
array_unshift($parameters,$request);
$request = call_user_func_array('sprintf',$parameters);
}
if(self::debug) {
echo '<p class="rqt">'.$request.'</p>';
$start = microtime(true);
}
$rtn = parent::query($request);
if(self::debug) {
$time = microtime(true)-$start;
self::$time += $time;
self::$list[self::$number] = array(
'request'=>$request,
'time' =>round($time*1000,2)
);
self::$number++;
}
}
if(self::debug) {
echo '<b>return</b> '.($rtn instanceof MySQLi_Result ? ''
.'MySQLi_Result' : intval($rtn)).'</div>';
}
return $rtn;
}

final public function fetch_object(
$request,
$parameters = array(),
$class_name = 'MySQLResult'
) {
if(self::debug) {
echo '<div class="dbg cla">'.__METHOD__.'('.$request.','
.$parameters.','.$class_name.') ';
}
$rtn = call_user_func_array(array($this,'fo'),array($request,$parameters,$class_name));
if(self::debug) {
echo '<b>return</b> '.($rtn instanceof MySQLResult ? 'MySQLResult'
.'' : $rtn).'</div>';
}
return $rtn;
}

final public function fo(
$request,
$parameters = array(),
$class_name = 'MySQLResult'
) {
if(self::debug) {
echo '<div class="dbg cla">'.__METHOD__.'('.$request.','
.$parameters.','.$class_name.') ';
}
$rtn = call_user_func_array(array($this,'q'),array($request,$parameters));
if($rtn instanceof MySQLi_Result&&'MySQLResult'==$class_name) {
$rtn = new MySQLResult($rtn);
}
if(self::debug) {
echo '<b>return</b> '.($rtn instanceof MySQLResult ? 'MySQLResult'
.'' : $rtn).'</div>';
}
return $rtn;
}

/**
* Helper function for db_query().
*/
/*
function _db_query_callback($match, $init = FALSE) {
static $args = NULL;
if ($init) {
$args = $match;
return;
}

switch ($match[1]) {
case '%d': // We must use type casting to int to convert FALSE/NULL/(TRUE?)
$value = array_shift($args);
// Do we need special bigint handling?
if ($value > PHP_INT_MAX) {
$precision = ini_get('precision');
@ini_set('precision', 16);
$value = sprintf('%.0f', $value);
@ini_set('precision', $precision);
}
else {
$value = (int) $value;
}
// We don't need db_escape_string as numbers are db-safe.
return $value;
case '%s':
return db_escape_string(array_shift($args));
case '%n':
// Numeric values have arbitrary precision, so can't be treated as float.
// is_numeric() allows hex values (0xFF), but they are not valid.
$value = trim(array_shift($args));
return is_numeric($value) && !preg_match('/x/i', $value) ? $value : '0';
case '%%':
return '%';
case '%f':
return (float) array_shift($args);
case '%b': // binary data
return db_encode_blob(array_shift($args));
}
}
*/
/**
* @desc Escapes special characters in a string for use in a SQL statement,
* taking into account the current charset of the connection and control
* the current configuration setting of magic_quotes_gpc.
* @final
* @access public
* @uses parent::real_escape_string()
* @param string $text
* @param boolean $unescape_simple_quote
* @return string Escaped text
*/
final public function e($s = '') {
return $this->real_escape_string(
self::$magic_quote ? stripslashes($s) : $s
);
}

/**
* @desc Alias of MySQL::e
* Escapes special characters in a string for use in a SQL statement,
* taking into account the current charset of the connection and control
* the current configuration setting of magic_quotes_gpc.
* @final
* @access public
* @uses MySQL::e()
* @param string $string
* @param boolean $unescape_simple_quote
* @return string Escaped text
*/
final public function escape_string($string = '') {
return $this->real_escape_string(
self::$magic_quote ? stripslashes($string) : $string
);
}

/**
* @desc Selects MySQL database.
* @final
* @access public
* @uses MySQLi::select_db()
* @param string $name default: null
* @return boolean Selected
*/
final public function select_database($name = null) {
if(self::debug) {
echo '<div class="dbg cla">MySQL->select_database('.$name.') ';
}
$rtn = false;
if(is_string($name)&&!empty($name)) {
$this->name = $name;
}
if(!is_null($this->name)) {
if(!$rtn = parent::select_db($this->name)) {
if(self::debug||DEV>0) {
echo '<p class="err">Database selection failed.</p>';
}
else {
header('Location: '.HOST.'/',false,501);
exit();
}
}
}
if(self::debug) { echo '<b>return</b> '.intval($rtn).'</div>'; }
return $rtn;
}
}

/**
* @desc Classe étendue de ArrayObject remplaçant l'objet MySQLi_Result
* retourné par MySQLi::query().
* @see https://www.php.net/manual/en/class.mysqli.php
* @see https://www.php.net/manual/en/class.mysqli-result.php
* @see https://www.php.net/manual/en/class.arrayobject.php
* @final
*/
final class MySQLResult extends ArrayObject {
/**
* @desc Displays calls to the class.
* @var boolean
*/
const debug = false;

public function __construct($MySQLi_Result) {
if(self::debug) { echo '<div class="dbg cla">'.__METHOD__.'(MySQLi_Result) '; }
parent::__construct(array(),parent::STD_PROP_LIST);

$MySQLi_Result->data_seek(0);
for($i=0;$i<$MySQLi_Result->num_rows;$i++) {
$this[] = $MySQLi_Result->fetch_object();
$MySQLi_Result->data_seek($i+1);
}
$MySQLi_Result->close();

unset($MySQLi_Result);
if(self::debug) { echo '</div>'; }
}
}
?>



Voilà, vous savez tout ! Je suis ouvert à toutes solutions simples.
Merci d'avance ;)







A voir également:

10 réponses

Utilisateur anonyme
29 oct. 2012 à 00:43
En faite l'erreur est bien décrite au début:
Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'sorbonne_user'@'localhost' (using password: YES) in

Cela signifie que les identifiants de connexion à la base de données sont mauvais.
Pour wordpress ils se trouvent dans le fichier wp-config.php

Bon courage.
0
Freeman89 Messages postés 8 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 11 novembre 2012
29 oct. 2012 à 18:07
Merci beaucoup pour votre réponse. Je suis parvenu à localiser le fichier wp-config.php via le gestionnaire de fichiers de cPanel. En voici un aperçu :
<?php
/**
* The base configurations of the WordPress.
*
* This file has the following configurations: MySQL settings, Table Prefix,
* Secret Keys, WordPress Language, and ABSPATH. You can find more information
* by visiting {@link https://codex.wordpress.org/Editing_wp-config.php Editing
* wp-config.php} Codex page. You can get the MySQL settings from your web host.
*
* This file is used by the wp-config.php creation script during the
* installation. You don't have to use the web site, you can just copy this file
* to "wp-config.php" and fill in the values.
*
* @package WordPress
*/

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'blablabla');

/** MySQL database username */
define('DB_USER', 'blablabla');

/** MySQL database password */
define('DB_PASSWORD', 'blablabla');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');



Le mot de passe présent dans wp-config.php m'était complètement inconnu. Je l'ai donc modifié par celui que j'ai fourni à Fantastico De Luxe. Rien n'y fait, l'erreur mysql 28000/1045 persiste. Dois je modifier quelque chose dans le fichier /home/sorbonne/public_html/sources/core/mysql.cla.php (présenté ci-dessus) ? Et si oui que dois je faire?

Merci d'avance pour vos réponses.
0
Freeman89 Messages postés 8 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 11 novembre 2012
30 oct. 2012 à 17:39
Bonsoir,
Je me permets de remonter le topic car je ne parviens toujours pas à résoudre mon problème...
0
Freeman89 Messages postés 8 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 11 novembre 2012
4 nov. 2012 à 15:22
Ptit up du week end ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
4 nov. 2012 à 16:47
Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'sorbonne_user'@'localhost' (using password: YES) 


Ton mot de passe est peut-être erroné ?
0
Freeman89 Messages postés 8 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 11 novembre 2012
6 nov. 2012 à 18:05
Bonsoir,
En effet, les informations comme le database's hostname, database's name, database user's password, database user's name étaient en =null (voir mon premier post)... Du genre :

private static $name = null;
/**
* @desc MySQL database user's password.
* @access private
* @var string
*/

J'ai donc remplacé ces informations celles fournies dans le fichier wp-config.php... Et me voici confronté à une nouvelle erreur :/


Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2002): Can't connect to local MySQL server through socket 'sorbonne_wrdp1' (2) in /home/sorbonne/public_html/sources/core/mysql.cla.php on line 173

Une idée?
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
6 nov. 2012 à 18:09
Moi ça me dit rien, mais google connait :
https://www.tech-recipes.com/rx/762/solve-cant-connect-to-local-mysql-server-through-socket-tmpmysqlsock/

Bon, c'est en anglais par contre (google traduction est là au pire)
0
Freeman89 Messages postés 8 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 11 novembre 2012
Modifié par Freeman89 le 6/11/2012 à 19:57
Me revoila et retour à l'erreur 2800-1045...
Je crois que je vais devenir fou!!! Mes piètres connaissance dans le domaine me font penser que mon problème vient d'une divergence d'information entre le fichier wp-config.php et le fichier myslq.cla.php. J'ai essayé de les faire correspondre. Voici un bref descriptif :

-LE FICHIER wp-config.php :

define('MYSQL_NAME', 'blablabla');

/** MySQL database username */
define('MYSQL_USER', 'blobloblo');

/** MySQL database password */
define('MYSQL_PASS', 'bliblibli');

/** MySQL hostname */
define('MYSQL_HOST', 'blublublu');

/** Database Charset to use in creating database tables. */
define('MYSQL_CHAR_SET', 'utf8');

-LE FICHIER myslq.cla.php :
/**
* @desc MySQL database's character set.
* @access private
* @var string default UTF-8
*/
private static $charset = utf8;
/**
* @desc MySQL database's hostname.
* @access private
* @var string
private static $host = blublublu;
/**
* @desc MySQL database's name.
* @access private
* @var string
*/
private static $name = blablabla;
/**
* @desc MySQL database user's password.
* @access private
* @var string
*/
private static $pass = bliblibli;
/**
* @desc MySQL database port.
* @access private
* @var string
*/
private static $user = blobloblo;
/**
* @desc MySQL requests execution time.
* @access private
* @var integer
*/
Ces informations correspondent parfaitement !

Remarque : J'ai modifié tout les define('DB_TRUC', 'blobloblo') par define('MYSQL_TRUC2', 'blobloblo'). En effet au début du fichier myslq.cla.php il est marqué :
@uses MYSQL_CHAR_SET
* @uses MYSQL_HOST
* @uses MYSQL_NAME
* @uses MYSQL_PASS
* @uses MYSQL_USER

Quoi qu'il en soit avec ou sans cette motif, le résultat est le même... Je n'y comprend vraiment rien!!!
0
Freeman89 Messages postés 8 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 11 novembre 2012
7 nov. 2012 à 18:18
Ptit up ;)
0
Freeman89 Messages postés 8 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 11 novembre 2012
11 nov. 2012 à 22:50
Re up...
0