Народ, бился со среды уже 5 день. С MySQL никогд дела не имел, всегда с MS SQL работал. Тут пришлось. MySQL установил, базу создал, таблицы создал. Создал пользователя, с правами подключения с любого IP. Уже перековырял весь интернет. В PHP MySQLi подключен. По команде Код (Text): if (extension_loaded('mysqli')) echo ' mysqli true'; Выдает ОК. Но как не пытаюсь подключиться к БД, все время выдает : 500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed. И так пробовал, и без порта. Код (Text): <?php $host = '192.168.10.2:3306'; $database = 'element_base'; $user = 'MBUser'; $password = '1234567'; if (extension_loaded('mysqli')) echo ' mysqli true'; if(!mysql_connect($host,$user,$password)) die('error'); echo "OK"; ?> И так вот пробовал: Код (Text): //$link = mysqli_connect($host, $user, $password, $database); //mysqli_close($link); И тоже с портом и без порта. результат один. К сожалению IIS и MySQL на разных серверах. Но порт 3306 я проверял, доступен. PHP работает. Как только строки подключения к БД убираю, все ОК. PHP 5.2.
укажи порт как отдельный параметр https://stackoverflow.com/questions/19575029/mysqli-connect-to-remote-server --- Добавлено --- mysql_* не используй больше никогда
Так и указывал. Та же ошибка, что и без порта. Да стараюсь. Но уж танцы с бубном идут. Этот пример к стати с этого форума, правда 13 года. Так что не представляю в чем дело. При чем именно 500-internal server error, а не ошибка подключения к базе скажем.
Это лишнее. Просто сделай все по-человечески. Пока мало что понятно. Как выше написали, порт указывается отдельным параметром. 3306 обычно дефолтом устанавливается. См. секцию MySQLi (не путать с MySQL) в конфиге. А чЁ там строки закомментированы и нет никаких проверок?
Так хотелось бы. ЧТо значит по человечески? Танцы с бубном ведь просто так не начинаются. Я прочитал кучу инструкций. Установил. И не работает. Именно соединение с MySQL не работает. PHP работает, MySQLi прописан. А ошибка 500-internal. На проверки не реагирует. Просто выдает эту ошибку. Да просто я уже по разному пробовал. Новый вариант пробуешь, старый комментируешь. Вот и вписал их закомментироанные. А проверки так же были. Но снова ошибка 500.
Конкретный тестовый код нужен, который можно обсудить. На чем ошибка 500 возникает, на mysqli_connect? (В первом фрагменте у тебя с какого-то перепугу mysql используется.) До детализации средствами php (просмотра $connect_errno/$connect_error) уже не доходит? На сервере с СУБД из командной строки и т.п. делал проверки открытия базы и т.п.?
Какой бы код я не использовал, одно и то же. Вот только что вот такой пример нашел: Код (Text): define('DB_NAME', 'element_base'); define('DB_USER', 'MYuser'); define('DB_PASSWORD', '1234567'); define('DB_HOST', '192.168.10.2:3306'); if (extension_loaded('mysqli')) echo ' mysqli true'; $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); if (!$link) { die('Could not connect: ' . mysqli_error($link)); } $db_selected = mysqli_select_db($link, DB_NAME); if (!$db_selected) { die('Cannot access' . DB_NAME . ': ' . mysqli_error($link)); } mysqli_close($link); Все равно ошибка 500. Я просто начинаю подумывать, что ошибка не в коде, а во время попытки соединится с MySQL сервером вообще. Но как уже и говорил порт 3306 с помощью PortQuery проверял. Пользователю дал права входить с любого хоста. Даже на всякий случай права ему как у рута дал. Проверил работу через командную строку на сервер. Подключился к БД в командной строке и командой Код (Text): INSERT INTO ptype (Name, NVyv, Lvyv) VALUES ('DIP', 8, 2.5); ввел новую строку данных в одну из таблиц. Все прошло успешно.
@Delphin911, есть официальный сайт PHP угадай с трёх букв адрес. Зайди туда и посмотри пример подключения. 2019 год на дворе, почему РНР 5.2?
Тебе уже дважды написали, что порт не так передается! И поставь бряк (exit) после mysqli_connect. P.S. Восьмерка – новая линейка. Подавляющее большинство на пятерке сидит. --- Добавлено --- P.P.S. Пропиши базу четвертым параметром, а порт – пятым. --- Добавлено --- При этом select_bd лучше убрать.
HTML: <configuration> <system.webServer> <httpErrors errorMode="Detailed" /> <asp scriptErrorSentToBrowser="true"/> </system.webServer> <system.web> <customErrors mode="Off"/> <compilation debug="true"/> </system.web> </configuration> HTML: <configuration> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> </system.webServer> </configuration>
1. Может ты заодно и php 7.3 установишь, а не будешь сидеть на старом говне, но в новой шубке ? 2. Лог ошибок не догадался открыть. Советую его изучить и включить/настроить отображение ошибок.
А старые сайты написанные на 5 PHP придется переписывать? У меня их не много конечно, штуки 3. Они с MS SQL работают.
И за одно слезай тогда с Win/IIS. Будешь сидеть на LAMP/LNMP/LLMP, как все норм. люди --- Добавлено --- Не обязательно. Зависит от древности кода (нет mssql_-функций) и потребностей развития (строгой типизации и т.п.).
Тогда грызи конфиги/логи IIS. В ЭТОМ здесь тебе будет мало помощников. --- Добавлено --- Перед mysqli_connect ставил бряк?
Подскажите вот много где пишут, что на сервер с IIS и PHP соответствественно надо PHPMYAdmin устанавливать. Это обязательно? Без этого с MySQL IIS с PHP не свяжешь? Или это один из вариантов?
phpMyAdmin – это просто оболочка (вэб-клиент). --- Добавлено --- Единственное вменяемое объяснение «необходимости» – какая-то спец. версия pma под конкретную ось имеет что-то такое в своем пакете установки, что ламер отдельно скорее всего не поставит. Но в общем это бред.
Лазаю по инету. Во всех статьях IIS+PHP+MySQL все просто совсем без проблем. Никаких доп настроек. Я вроде все устанавливал как написано. К тому же PHP+IIS у меня давно и успешно работает и с MS SQL успешно коннектится вот реально совсем без проблем и танцев с бубнами. А тут уже всю голову сломал блин!.
@Delphin911 У меня IIS+PHP+MySQL тоже все пашет без проблем. Разницы вообще в принципе нет никакой. Где то ты рукожопиш.