2016-11-10 2 views
2

, когда я пытаюсь соединиться с MySQLi в моем PHP я получаю следующее сообщение об ошибке:MySQLi доступ запрещен из PHP

Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in xxxxxxxx

Connect Error (1045) Access denied for user 'root'@'localhost' (using password: YES)

однако я могу войти, с теми же учетными данными в PHPMyAdmin и с помощью консоли MySQL.

Я предоставил root @ localhost все разрешения.

вот мой TestFile, что я использую для подключения к базе данных:

<?php 

$mysqli = new mysqli('localhost', 'root', 'rootPassword', 'myDatabase'); 

if ($mysqli->connect_error) { 
    die('Connect Error (' . $mysqli->connect_errno . ') ' 
      . $mysqli->connect_error); 
} 
echo 'Connection OK'; 
$mysqli->close(); 
?> 

, что я должен сделать, чтобы исправить это?

обновление:

здесь новый код:

$mysqli = new mysqli('localhost', 'root', 'root', 'ignis', '3307'); 

if ($mysqli->connect_error) { 
    die('Connect Error (' . $mysqli->connect_errno . ') ' 
      . $mysqli->connect_error); 
} 
echo 'Connection OK'; 
$mysqli->close(); 

с этим я получаю Connection OK, однако, когда я пытаюсь соединить, как это с помощью «JOOMLA» способ подключения к базе данных я все еще получаю ошибку

Error displaying the error page: Application Instantiation Error: Could not connect to MySQL.

У кого-нибудь есть идея, как это исправить?

вот часть моего файла configuration.php, который используется для подключения к базе данных:

public $dbtype = 'mysqli'; 
public $host = 'localhost:3307'; 
//tried using :59420 no success either but i have configured it 
//to port 3307 in wamp so idk how the mysql console ever came up with port 59420. 
public $user = 'root'; 
public $password = 'root'; 
public $db = 'ignis'; 
public $dbprefix = 'igns_'; 

результат show processlist

+----+------+-----------------+------+---------+------+----------+------------------+ 
| Id | User | Host   | db | Command | Time | State | Info    | 
+----+------+-----------------+------+---------+------+----------+------------------+ 
| 85 | root | localhost:59420 | NULL | Query | 0 | starting | show processlist | 
+----+------+-----------------+------+---------+------+----------+------------------+ 
+0

У вас есть только один сервер MYSQL? – RiggsFolly

+0

@RiggsFolly да только один сервер работает –

+0

точно такой же результат: 'Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: НЕТ)' Я установил для этого пароль для mysql и установил пароль phpmyadmin axact same в файле phpmyadmin/config.inc –

ответ

0

после того, как полный рабочий день я, наконец, понял это,

joomla был странным, в каком файле он использовался, он предпочитает configurations.php.txt внутри папки joomla выше configurations.php в s ite корень.

Почему?

потому, что в файле factory.php есть этот кусок кода:

public static function getConfig($file = null, $type = 'PHP', $namespace = '') 
    { 
     if (!self::$config) 
     { 
      if ($file === null) 
      { 
       $file = JPATH_CONFIGURATION . '/configuration.php.txt'; 
      } 

      self::$config = self::createConfig($file, $type, $namespace); 
     } 
     return self::$config; 
    } 

где JPATH_CONFIGURATION = JPATH_ROOT (папка Joomla) и /configuration.php.txt был жёстко поэтому игнорировал файл /configurations.php.

но что я до сих пор не понял, почему mysql внезапно разбился после обновления Windows? это потому, что было обновление, связанное с блокировкой соединений без указанных портов? поскольку это работало до обновления Windows.

Смежные вопросы