2015-10-01 3 views
0

Так что моя проблема в том, что мы пытаемся настроить сайт WordPress на сервере Windows (2012) в IIS. Я использовал WebPI для установки PHP и использовал PHP Manager для его настройки. У нас есть сервер базы данных на 10.0.0.x, который запускает как SQL Server, так и MySQL. Мы все настроили, но WordPress не подключается. Мы получаем следующее сообщение об ошибке:WordPress не удается подключиться к MySQL, но Workbench будет

Access denied for user 'user'@'ip-10-0-0-x.x.compute.internal' (using password: YES)

Я попытался это:

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS) or die(mysqli_connect_error()); 

Я также пробовал с mysql_connect расширения с теми же результатами. Поэтому я пробовал это:

$pdo = new PDO('mysql:host=10.0.0.x;dbname=DB_NAME', 'DB_USER', 'DB_PASS'); 
$statement = $pdo->query("SELECT user_login FROM wp_users WHERE ID = 1"); 
$row = $statement->fetch(PDO::FETCH_ASSOC); 
echo htmlentities($row['user_login']); 

И это сработало отлично. Он подключился, выполнил запрос и вернул значение. MySQL Workbench также смог подключиться. Я смог определить, что WordPress использует mysqli с резервными копиями библиотеки mysql. Вероятно, поэтому он не может подключиться. Но в чем разница и почему он аутентифицирует один, а не другой? версия

MySQL Community: 5,6

PHP 5.3 (первоначально пытались 5.6)

Любые идеи?

ОБНОВЛЕНИЕ: Поскольку вопрос возник, я понимаю, что WordPress работает. Это не вопрос. Пользователь MySQL настроен как «пользователь» @ «%». Очевидно, я могу подключиться к этому пользователю на этом сервере с этого хоста, используя PDO. Мой вопрос: почему PDO может подключаться, а mysqli не может?

ответ

-1

Ну, вы знаете, WordPress работает правильно. Он имеет десятки миллионов рабочих установок. Он работает над каждой конфигурацией, которую мы можем себе представить, а некоторые мы не можем. Обманывание с версиями php, и все это, вероятно, пустая трата времени.

Посмотрите файл wp-config.php в корневом каталоге установки WordPress на своем сервере. Посмотрите на эти строки:

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

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

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

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

Убедитесь, что эти значения соответствуют вашим значениям. Если значения неверны, отредактируйте их.

Имейте в виду, что MySQL требует отдельных учетных записей пользователей для пользователя @ localhost и пользователя @ anotherhost.

+0

Я знаю, что WordPress работает правильно. Мое мышление заключается в том, что что-то перепуталось с моей установкой PHP или некоторой несовместимостью версии, о которой я не знаю. Я скопировал имя пользователя/имя/пароль непосредственно из 'wp-config.php' и использовал их в Workbench просто отлично. Пользователь фактически является «пользователем» @ «%» с правилами брандмауэра. – ahwm

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