2015-10-18 2 views
-1

У меня есть локальная база данных, с которой мне трудно связаться. У меня все настроено через MAMP. Я знаю, что мои параметры пользователя, pass, name и host db верны, и я вошел в брандмауэр Windows, чтобы открыть порты TCP, входящие и исходящие. Тем не менее, я все еще получаю следующее сообщение, когда я запускаю следующий код:Не удается подключиться к базе данных phpMyAdmin с помощью mysqli

Connect failed: 2003 

Кто-нибудь знает, что означает этот номер ошибки? Ниже приведен код php, который я пытаюсь запустить.

<?php 
$db_user = 'db'; 
$db_pass = 'dbpass'; 
$db_name = 'dbname'; 
$db_host = 'localhost'; 

$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name); 

if ($mysqli->connect_errno) 
{ 
    printf("Connect failed: %s\n", $mysqli->connect_errno); 
    exit(); 
} 
+0

попробуйте использовать $ mysqli-> connect_error вместо errno (номер ошибки), он заявит, что не может подключиться к указанному серверу ... с какими инструментами вы проверили свои учетные данные? phpmyadmin по крайней мере или некоторые другие внешние инструменты? возможно, опечатка ... какая версия php использует? добавлена ​​ли библиотека mysqli? (проверьте свой phpinfo() на mysqli). – Ryu

+0

можете ли вы подтвердить, что вы можете подключиться к серверу через клиент mysql (в терминале)? – Jigar

+0

@Jigar Я могу войти в db через MAMP, чтобы добавлять/редактировать строки и таблицы, я просто не могу добраться до него, когда запускаю свой php-скрипт –

ответ

0

Попробуйте

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name); 
+0

Это сработало! Спасибо! –

1

В MAMP локальный, На вкладке MYSQL, установите флажок "Разрешить доступ к сети MySQL" и checkd "только из этого Mac", и он может решить

+0

Где я могу найти вкладку MYSQL? Это в phpMyAdmin? –

+0

Это в MAMP –

0

Эта проблема была вызвана некоторой типографской ошибкой, поэтому я голосую, чтобы закрыть ее. Но поскольку на самом деле не хватает достаточного количества голосов для фактического закрытия вопроса, я чувствую, что должен добавить объяснение для будущих посетителей: принятый ответ никогда не сможет решить ничего, поскольку mysql_connect - это просто псевдоним для mysqli :: __ construct(). Таким образом, просто не может быть, когда mysqli_connect работает, а новый mysqli - нет.

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