Для неумных и наглых ТС-ов - вебмастера не занимаются программированием, а программисты не ходят в раздел, куда ты засунул свою тему. Переместил из "Вебмастер" в "Программирование".
для самовлюбленніх модераторов
https://ru.wikipedia.org/wiki/Веб-мастер
Веб-мастер (встречается также вариант вебмастер; веб-разработчик) — человек, занимающийся разработкой веб-сайтов или корпоративных приложений для Интернета. В зависимости от размера коллектива разработчиков, он может объединять в себе функции автора, дизайнера, верстальщика веб-страниц, программиста, системного администратора, модератора, контент-менеджера (ответственного за содержимое), сотрудника технической поддержки, специалиста по продвижению сайта (SEO, «раскрутка») и другие. Подобные специалисты чаще всего разрабатывают и поддерживают небольшие сайты, так как крупные (и дорогие) интернет-порталы имеют возможность распределить роли на нескольких специалистов (или заказать их услуги в специализированных агентствах).
Подправьте тогда статью в вики, Ві, видимо, лучше разбираетесь.
Вопрос относится к программированию меньше всего. Вопрос состоит в организации взаимодействия со связкой вебсервер+пхп+MySQL база в локальной сети по принципу "интранет" (интернет внутри локалки). Если это не вебмастеринг - где я могу получить тиару папы римского и папамобиль?
Программирование там присутствует ситуативно, основная проблема не в скрипте.
1. поскольку у тебя указано в параметре host днс-ное имя - попытка коннекта осуществляется по TCP/IP. далее начинают работать gethostbyname() у php , и gethostbyaddr() у mysql. Соотв. - автору надо думать, кому (user@host) прописывать гранты в mysql.user.
Трудно анализировать ошибку авторизации, не видя того хоста, кому выдан грант для user. У тебя грант выдан явно не тому, кто лезет к мусклю.
тому, но... да, не тому
Кто лезет в майскуль? Я? Нет, не я. Он запущен на localhost и к нему лезет скрипт. В этом исток вопроса.
Кстати, gethostbyaddr() никакими hosts не пользуется, оно пользуется dns
пользуется. Я прописал в хостс редирект и всё за работало. Откуда он тогда узнал, если не пользуется им?
Да, действительно пустота переменной означает ошибку подключения. Но хочется же всегда большого и светлого! Например - понять не только, что не удалось, но и почему.
Если я из C# через коннектор стучусь в никуда - я получаю ексцепшен и в нем есть описание, что на той стороне нет сервера. Хотелось бы и в php иметь такую возможность.
без комментариев. Вернее - к автору кода (кто сказал, что генерируется исключение при ?)
Автор кода сказал, но писать ему не буду - некогда.
Я проверял - возникает. Но не в этом случае. Возникало, когда я порт тупо забыл прописать в строке коннекта.
p.s.
вся эта твоя хня планируется в продакшн на хостинг? учти, что у нормальных хостеров (да и у ненормальных - тоже) мускл запускается со --skip-networking , потому настоятельно рекомендую работать через файл-сокет локалхоста. с "grant .... to 'user'@'localhost'...." и соотв. коннект тоже на localhost.
мм... как бы так сказать... я из php, в принципе, могу, конечно, стучаться в сторонний SQL-сервер на другом хосте, но применений такой связки вижу немного.
Да, это один хост и на нем и апач и, собсно, MySQL. И апач, крутящий скрипт, да - это localhost для майскуля.
Нет, не знаешь, иначе написал бы
P.S. поскольку, да, скрипт крутится действительно на localhost - DNS сервер для правильного взаимодействия должен быть един. Но у меня нет ни какого DNS-сервера в моем интранете. Только ручками в хостс.
Проблема состояла в том, что homeserver.org надо было прибить гвоздем к IP хоста не только на клиенте, но и на самом хосте, так как сам хост - сам себе и клиент - php драйвер является клиентом для MySQL сервера.
После прописывания в hosts 192.168.1.11 homederver.org - всё заработало.
Ну и следующее, что ни кто не по советовал сделать, но сделать было нужно.
Вопрос: как правильно проверить соединение на ошибки (правильно это не просто одуплить, что не паааалллучилааась, а ещё и прочитать почему).