Предупреждение не удалось создать принимающий сокет для
Ошибки при репликации между двумя КД
В сети существовало два КД на Windows Server 2003.
Итак, я наконец то собрался с силами и, отбросив лень, сел плавненько переезжать на 2008 Server R2 с 2003 Server R2, где крутилась АД в режиме работы леса и домена 2003.
Выполнил adprep для леса и домена, все прошло успешно.
Взял один из этих двух КД и переставил на нем ОСь на Windows Server 2008 R2.
Добавил машинку в домен, поднял роль АД. ДНС добавился автоматически. Открываю AD, смотрю на данные - вроде бы все замечательно отреплицировалось, даные перенеслись, новый, только что установленный сервак отображается в списке Контроллеров Домена.
Однако, решил прочитать журнал DNS на всякий пожарный и хорошо, что прочитал:
Тогда я занервничал и решил, что надо бы выполнить dcdiag, netdiag на только что полнятом КД. Не успел запустить dcdiag, как ошибки посыпались, первая из которых:
Как же тогда я вижу данные в АД все? и в ДНС?
Брандмауэр на серваке отлючен, пользователь обладает правами администратора.
Может быть я неверно указал настройки для ДНСов? Сейчас схема такая.
КД1 (с которого надо все стянуть на 2008 R2):
И вообще все, что связано с АД. я поднимаю только после установки и настройки DNS.
Правда не понятен откуда взят адрес 172.17.1.3?
И вообще все, что связано с АД. я поднимаю только после установки и настройки DNS.
Правда не понятен откуда взят адрес 172.17.1.3?
Хм. Как я только не пробовал выставлять айпишники, но так еще нет
Сделал так. Ошибки те же.
Отключил UAC, Брандмауэр отключил еще вчера. Антивирус/файрвол сторонний убил.
Проверил службу "Браузер Компьютеров" - была не запущена. Установил тип запуска - автоматом, саму службу запустил.
После всего этого ребутнул сервак. После ребута ошибки были те же. Открыл "AD - пользователи и компьютеры". Создал новую учетку. Кроме того изменил некоторые существующие записи - на КД1 изменения отобразились.
Запустил dcdiag на новом КД2, ниже привожу результат:
Дальше - больше. На КД1 dcdiag выплевывает исключительно ошибки репликации.
При этом оба сервака видят друг друга через nslookup.
Очень надеюсь на помощь.
А что у вас за сервер CORE это первое и второе на w2k3 все ли роли захвачены? Внимательнее просмотрите DNS, все записи, которые микрософтовские, т.е. зоны, начинающиеся с "_"и записи в них. ну и попробуйте снова зарегистрировать основной контроллер можно любым способом ipconfig /registersdns или перезапуском netlogon.
snorlov писал(а): А что у вас за сервер CORE это первое и второе на w2k3 все ли роли захвачены? Внимательнее просмотрите DNS, все записи, которые микрософтовские, т.е. зоны, начинающиеся с "_"и записи в них. ну и попробуйте снова зарегистрировать основной контроллер можно любым способом ipconfig /registersdns или перезапуском netlogon.
До этого было 2 КД, оба на w2k3. Один из них я понизил, переставил ОСь на 2008 Server и снова поднял АД, введя его в домен.
CORE - это старый КД на w2k3, все 5 ролей принадлежат ему.
NetLogOn перезапускал, эффект тот же. Сейчас попробую перезарегистрировать КД.
Имеет ли смысл переустановить службы AD на новом КД (W2K8)?
Еще в доке читал, что необходимо поднимать DNS !ДО! установки AD, если поднимается дополнительный КД. Однако, dcpromo выполнил сам эту функцию и установил ДНС вместе АД.
DNS у меня интегрирован в AD.
Блин, а роли то у кого остались, похоже, что у CORE, которого сейчас физически нет. Вот и стоит ругань. Этот CORE у вас наверное и в DNS'е имеется, вы сказали, что вы его не обновили, а переставили, так что у вас появился новый кд
snorlov писал(а): Блин, а роли то у кого остались, похоже, что у CORE, которого сейчас физически нет. Вот и стоит ругань.
Было два КД. Один Core с айпишником 192.168.0.1, второй URAN с айпишником 192.168.0.2.
Так вот, URAN я понизил до роли простого сервера. Все роли на себя принял CORE.
После этого URAN я вывел из домена и отключил физически.
Еще раз проверил роли на CORE - все ок. Запустил dcdiag и netdiag - все ок. Подготовил лес и домен для w2K8 через adprep.
Вычистил из АД всю информацию об URAN, - там еще сохранилась на тот момент запись типа А.
Взял старый КД - URAN - переустановил там ОС на СЕРВЕР 2008. Ввел в домен. Запустил DCPROMO. Все прошло успешно. Поставил галочку глобального каталога и вуаля! Получил два КД:
Первый кд - это старый CORE на w2k3
Новый кд - URAN на w2k8
Между ними не работает репликация.
Но, физически у меня ДВА КД.
проблемы в DNS'е, останавливайте dns на uran, убивайте все записи об uran на core, затем на uran прописывайте первым dns'ом dns на core, регистрируйте uran в dns'e на core через registersdns, снова винмательно смотрим записи об uran, гоняем тесты и лишь затем поднимаем dns на uran, можно сначала его поднять как slave.
В смысле удалить саму службу DNS? Тогда же и АД придется затирать.
На CORE затирать записи в DNS, я так понимаю.
Еще дополнительную инфу кидаю, которую только что сделал.
Привожу ipconfig. Сначала с w2k3 - старый КД:
PID 1304 соответствует службе DNS. Больше PID'ов, слушающих 53 порт я не вижу.
registerdns провел, через 15 минут будет результат.
В смысле удалить саму службу DNS? Тогда же и АД придется затирать.
На CORE затирать записи в DNS, я так понимаю.
Кто тебе сказал такую ересь, что при удалении/остановке DNS удалиться АД, DNS для AD может быть и unix'совым, главное, что бы эта служба была доступна кд, ну и обладала некоторыми свойствами, одно из которых динамическое обновление зон. Большинство твоих проблем связано с тем, что ты понизил uran, а потом по существу его убил, но записи о нем в AD и DNS'е остались, и под тем же именем вы в AD втащили новый кд. Кстати обратная зона в DNS'е есть? Спрашиваю потому, что она нужна для работы, но автоматом она не создается.
Так, ДНС я удалил с URAN.
Теперь там есть только АД. На сетевых интерфейсах обоих КД указал в качестве праймари ДНС айпишник первого КД - CORE. Альтернативный ДНС сделал пустым.
При этом Active Directory сообщает о следующих ошибках:
1) Исходный КД функционирует
2) Через net view/ping/nslookup новый КД находит старый. URAN находит CORE и наоборот
3) dcdiag /test:dns на CORE выполняется с успехом
4) Аналогично.
5) С базой знаний знакомлюсь.
Вопрос. Что мне вычищать на CORE? Записи типа А и CNAME?
Все ссылки на uran и его ip, обратная зона (0.168.192.in.addr-arpa, на виндовом серваке через мастер вроде там надо писать 192.168.0. ) на core есть? если нет, добавить ручками, ОБЯЗАТЕЛЬНО
snorlov писал(а): Все ссылки на uran и его ip, обратная зона (0.168.192.in.addr-arpa, на виндовом серваке через мастер вроде там надо писать 192.168.0. ) на core есть? если нет, добавить ручками, ОБЯЗАТЕЛЬНО
Имена в айпишники и айпишники в имена разрешаются.
Попробовал выполнить репликацию через Active Directory - сайты и службы - выполнилась без ошибок.
Попробовал выполнить репликацию из cmd, через repadmin - тут получил ошибку:
mr. brightside писал(а): Попробовал выполнить репликацию из cmd, через repadmin - тут получил ошибку:
Я не понимаю, откуда вы сделали такой вывод?
Когда я понижал URAN, то все записи я вычищал и из АД и из ДНС. Вычищал как через оснастки, так и через консоли.
Но старый DSA - 9119974d-4c8a-412a-a0ad-86b357a72fc1 (CORE) - не менялся. Он как был, так и остался. Более того, за все время его работы я его не трогал ни разу.
По всему выходит, что именно запись старого КД - 9119974d-4c8a-412a-a0ad-86b357a72fc1 - и невозможно определить. Может быть, имеет смысл перекинуть роли на новый КД, перекинуть ДНС, переставить ОСь на стором КД ввести в домен и снова сделать КД? Тогда все должно грамотно перерегистрироваться?
Если честно, 1000 страниц читать просто лень Тем более, что я не виндовый админ, а юниксовый
Скажите, пожалуйста, просто, куда капнуть, а то ведь время, время.
в первом случае она идет от кд, где запускается, к его партнерам, а во втором от партнеров к нему.
А все 1000 страниц и не надо читать, я просто в более доступном виде не видел описания утилит для работы с AD на русском языке.
в первом случае она идет от кд, где запускается, к его партнерам, а во втором от партнеров к нему.
А все 1000 страниц и не надо читать, я просто в более доступном виде не видел описания утилит для работы с AD на русском языке.
Здесь запись 229137f9-6e82-4293-8ac-4e69d4a2c037, - она не встречается в DNS или AD у меня, а в логе есть.
Ошибка на НОВОМ КД - W2k8 в разделе "Служба каталогов":
Эта, вторая запись DSA - 9119974d-4c8a-412a-a0ad-86b357a72fc1 - записана в DNS и AD как имя CORE - старого КД.
По поводу repadmin сейчас отпишусь
P.S. большое спасибо за ответы!
P.P.S. Книжку уже скачал
Вроде бы, все замечательно.
Так, теперь, если я правильно понял, мне необходимо вычистить все записи на ДНСе относительно нового КД. Вопрос: какие именно записи? Абсолютно все?
- в зоне прямого просмотра "папку верхнего уровня" и запись А?
- в msdcs псевдоним?
- а также записи _kerberos, _kpasswd, _ldap и _gc в разделах dc/domains/gc/pdc?
И в зоне обратного просмотра айпишник/имя сервера?
Или достаточно удалить запись типа А и Псевдоним CNAME?
После удаление мне надо будет перерегистрироваться в ДНС и посмотреть, что будет, верно?
Я бы вычистил все записи и после этого дал команду регистрации в dns, ну а потом поднял бы DNS на новом кд.
Ну хорошо, проделал
Удалил все SRV-записи, установил ДНС, теперь мне ситуация еще более не понятна.
Ошибки остались все те же самые. В лог они валятся ИСКЛЮЧИТЕЛЬНО при загрузке ОСи на новом КД.
В процессе работы, если новый КД не перезагружать, все работает замечательно. Работает репликация. Ниже привожу репликацию из консоли и dcdiag на новом КД после усановки ДНСа. Также хочу отметить, что репликация из оснастки тоже работает и ошибок не выдает.
Repadmin:
Возможно, задержки в сети влияют на произведение репликации при загрузке? КД подключены в d-link des 3526. Он поддерживает STP, только он отключен:
Может, как-нибудь заставить запускаться DNS и AD с задержкой? Скажем, секунд в 30 или 60, пока все фоновые службы не стартанут.
Да, внимательно посмотрел логи и соотнес их со временем загрузки сетевой карты
DNS и AD пытаются начать работу сразу, как начинает грузиться ОСь, а сетевая карта ТОЛЬКО когда происходит ЛОГОН, т.е. на 2 с лишним минуты позже, чем вышеупомянутые службы уже пытаются начать работу.
Можно ли как-нибудь заставить сетевушку работать уже на этапе биоса?
Intel 82574L и 82578DM
Или, может, не в сетевушках дело, а в ОСи? Может, настройка какая?
А вот это странно, поскольку такого не может быть, старт сетевых сервисов должен происходить после поднятия карточек, посмотрите зависимость старта сервисов. Из вашей фразы можно предположить, что в сервере 2-е карты, может вся сложность именно из наличия 2-х карт?
snorlov писал(а): А вот это странно, поскольку такого не может быть, старт сетевых сервисов должен происходить после поднятия карточек, посмотрите зависимость старта сервисов. Из вашей фразы можно предположить, что в сервере 2-е карты, может вся сложность именно из наличия 2-х карт?
В том то и дело, что такого не должно происходить.
Эти сетевые карточки идут вместе с какой то управляющей утилитой, которая загружается исключительно при логоне пользователя в систему/домен. До этого они мертвые и никакого коннекта по сети нет.
я проанализировал логи, сверял время запуска AD/DNS/RDP с моментом старта сетевушек.
Сеть поднималась только когда я залогинивался в домене. Это абсолютно неприемлемо даже с точки зрения возможного отключения электричества - вот вырубится свет, УПС продержит сервак, потом тот уйдет в офф. Boot on power есть, но если сервак загрузится, то еще необходимо залогиниться, чтобы он стал в сети доступен
Обидно, жалко и непонятно, но я просто вставил Realtek в сервак и все проблемы сразу решились. Те ошибки, которые постил ушли, остались предупреждения про сертификаты Kerberos (RDP) и SASL аутентификация (AD). Но, это меня уже почти не волнует.
Точно также не поленился и опробовал Acorp - грузится замечательно. Сетевая карта оживает сразу после загрузки биоса.
Вернет кол-во строк в таблице. На этом можно было бы закончить. Размышляя на эту тему, сделал следующие выводы.
1)Этот запрос каждой строке добавит еще один атрибут(одну колонку) и установить значение 999. Потом посчитает кол-во 999 в этом столбце. т.е для любого числа в скобках вернет кол-во строк.
2)А вот этот запрос установит звездочку каждой строке и посчитает позже кол-во звездочек.
3)Посчитать кол-во значений в столбце col1, игнорируя null. Здесь не создается столбец, т.к понятно на основе какого столбца расчеты проводить.
Я правильно понимаю, что * - это не все столбцы выбрать для каждой строки и посчитать строки, а логика работает как во 2-м пункте?
Еще начитался на эту тему, некоторые в своих статьях как это работает указывают что число в скобках - это номер столбца, не говоря про СУБД. Это правда для некоторых СУБД номер столбца?
Использую POSTGRESQL. Есть запрос
Предположительно нужно доработать индекс iUserNull, добавить предикат или поле «Responsible» IS TRUE, но это не хочется делать так как такое условие достаточно редкое.
Может есть другие варианты?
Добрый день, коллеги!
Департамент кадров подкинул задачку (и обещал, что она станет ежеквартальной) обработки результатов опроса сотрудников предприятия, проведённого в Google Forms. Понятно, что результаты выгружены в ODS и, казалось бы - на тебе Calc - обрабатывай, как твоя душа пожелает.
Проблемы в объёме данных: три тысчи сотрудников отвечают на 150 вопросов. HR-департамент хочет видеть эти результаты под такими срезами, что формулы становятся похожи на реферат кандидатской, Calc подвисает на минуты, да, к тому же результат не всегда бывает ожидаемым и приходится перепроверять ячейку за ячейкой.
Хочется вот чего:
- загнать данные в табличку PostgreSQL (LibreOffice Calc –> Select All –> Ctrl+C –> LibreOffice Base –> Ctrl+V);
- наделать аналитических запросов (a.k.a. View) уже в PostgreSQL;
- прилинковать View к Calc через Sheet –> Lint to External Data …
- по готовым аналитическим срезам нарисовать картинки и графики, понятные бизнес-генералам.
Звучит просто, но затык встретил на предпоследнем шаге, а именно: LibreOffice Calc не видит таблицы в базе LibreOffice Base, смотрящей на базу в PostgreSQL.
Возможно, я что-то делаю не так, а, возможно, такое нужно делать вообще по-другому. Что посоветуете?
Установил базу данных postgresql13. установил pgadmin3. Создал базу данных.
Хочу создать таблицу в базе данных lesson, но вылазит ошибка. Мне нужно сделать именно так, как я это делал в mysql/phpmyadmin. Потому что там у меня работало, а postgre я раньше не использовал. Прошу помочь.
На phpmyadmin выглядела таблица, которую я создавал таким образом:
Имя | Тип | Длина/Значения | По умолчанию | Сравнение | Атрибуты | Null | Индекс | A_I | Комментарии |
---|---|---|---|---|---|---|---|---|---|
user_id | INT | 11 | Нет | Primary | A_I | ||||
username | VARCHAR | 60 | Нет | utf8_general_ci | — | ||||
password | VARCHAR | 60 | Нет | utf8_general_ci | — |
На pgadmin3 таблица выглядит так:
Column | Тип | Длина/Значения | Not Null | Уникальный ключ | Первичный ключ | По умолчанию | Комментарии |
---|---|---|---|---|---|---|---|
user_id | integer | 11 | Да | Да | |||
username | character varying | 60 | Да | ||||
password | character varying | 60 | Да |
Ошибка выглядит так:
Пробовал через postgre в консоли, тоже самое:
Да, я вижу, что проблема где-то с последовательным типом данных. Я пробовал заменить на SERIAL , но в любом случае после создания таблицы не было доступа к бд/таблице. ЧЯДНТ?
//Тег freebsd будет лишним, но если это важно, то события происходят на ос freebsd в jail, все это на устройстве raspberry_pi. В моём случае pgadmin4/phppgadmin конфликтует с бинарными пакетами малины, которые были собраны заранее для nginx и другого добра, поэтому я поставил именно pgadmin3.
Есть ли минусы при использование Postfix-а в связке с Sqlite3? Если сравнивать с Postgresql или MySql.
Почему бы не использовать Sqlite3 с Postfix-ом всегда, вместо Postgresql или MySql? Проще ведь. А удалённый доступ к базе всё равно ведь не нужен.
Допустим, есть вот такая табличка (для простоты опустим индексы и т. п.):
То есть порядок элементов внутри категории жёстко задан с помощью поля position (можно, кстати, навесить уникальный индекс на category_id + position, чтобы быть уверенным в детерменизме выборки).
Встаёт вопрос как дать пользователю возможность менять порядок элементов. Допустим, на фронте реализован интерфейс с drag'n'drop и кнопкой «Сохранить изменения», при нажатию на которую бек получает category_id и список id всех элементов этой категории в новом порядке. Теперь беку нужно обновить значения полей position в БД (элементов в каждой категории не очень много, так что мне кажется допустимым перезаписать position у всех элементов в заданной категории).
Я пока вижу тут только решение в лоб с отдельным UPDATE для каждой записи, а значения position вычислять в коде (банальный цикл for по индексу в массиве id c фронта и использовать счётчик цикла). Но мне кажется такой подход не очень эффективным, так как будет N запросов, к тому же он плохо уживается с уникальным индексом на category_id + position (либо такой индекс надо убрать, либо использовать deferred индексы и т. п.).
Есть ли какие-то решения лучше?
P. S.: СУБД PostgreSQL
Раньше никогда не использовал оконные функции. Начал разбираться, понял как работают по отдельности (один over в select). Не пойму как несколько оконных функций вместе работают. Особенно интересно в данном примере почему строка (‘personel’, 5, 3500) вылезла первой.
Есть строка поиска, хочется сделать полнотекстовой поиск.
to_tsvector(‘simple’::regconfig, «Название») @@ to_tsquery(‘simple’::regconfig, ‘Мое_название’) AND «Название» IS NOT NULL
Но чтобы он работал, нужно удалить невалидные символы из строки поиска (например пробелы из строки поиска), нет ли команды из PGSQL, которая готовит строку для полнотекстового поиска?
Может быть наоборот? От чего зависит?
Использую pgAdimin проверяю обычный запрос SELECT, первый раз выполняется запрос 10 секунд (правильное время время - такое время в реальном приложении), последующее выполнение запроса 0.5 секунд. Может внутри pgAdmin он кэшируется. Приходится перезапускать pgAdmin, переподключаться к серверу. Есть какая-то команда, чтобы pgAdmin выдавал правильный план?
Между этими запросами есть отличия? Joinы же позже появились ?
После добавления новых функций в СУБД, в процессе обновления версий, или при исправлении багов все сборки СУБД тестируется в автоматическом режиме на билд-фермах. Иногда эти тесты не завершаются успешно, и перед нами стоит задача по поиску причины: это может быть баг в новой функциональности или регрессионном тесте; или же ложное срабатывание, или баг в операционной системе, или ранее незамеченный баг в «ванильной» версии PostgreSQL.
Мы ищем QA-инженера, в задачи которого будет входить расследование инцидентов в экосистеме PostgreSQL, поиск закономерностей возникновения ошибок в различных операционных системах и архитектурах, выработка рекомендаций по их исправлению. В своей работе мы используем Python (PyCharm) и мощный тестовый фреймворк pg-tests.
В работе подразумевается плотное взаимодействие внутри департамента разработки с другими коллегами - DBA, программистами, билд-инженерами.
От нового сотрудника мы ожидаем:
- опыт работы с PostgreSQL;
- опыт работы в Linux от 2х лет;
- базовое (read-only или выше) знание Python;
- творческий подход к работе (очень помогает при раскапывании неординарных кейсов).
Будет плюсом:
- навыки анализа производительности и проведения нагрузочного тестирования СУБД;
- опыт поддержки инфраструктуры с использованием контейнеров и kubernetes;
- знание языка Си (иногда это помогает найти ошибку непосредственно в коде проекта);
- опыт работы с широким спектром архитектур, ОС и СУБД;
Условия работы:
- заработная плата 130’000 - 230’000 net.
- официальное оформление: полностью удалённо, или в офисе Москве/Барнауле, или в комбинированном режиме;
- гибкий график работы;
- медицинское страхование сотрудника (+1), компенсация спортивных активностей до 30К/год, компенсация затрат на оборудование удаленного рабочего места до 30к/год, приобретем и отправим любую технику, необходимую для работы;
- сотрудники имеют все возможности для участия в профессиональных ИТ-конференциях, продвижения в опенсорс-сообществе PostgreSQL и в целом находятся на переднем крае СУБД-строения.
Дополнительная информация:
- работа на этой позиции отличается от работы «классических» QA-инженеров из веба или мобильной разработки, т.к. предполагает глубокое погружение в PostgreSQL, Linux и рабочее окружение (системы виртуализации, CI/CD и т.д.);
У меня та же проблема, что и у вас. Я думаю, что это правда с 12.10, но эта тема была закрыта до выхода 12.10.
Занимаясь поиском (главным образом вдохновленный здесь ), я нашел это решение:
- редактировать /etc/NetworkManager/NetworkManager.conf файл с вашим любимым редактором
- прокомментировать строку dns=dnsmasq
- перезапустите сетевой менеджер: sudo service network-manager restart
Но в вашей конфигурации dnsmasq ( /etc/dnsmasq.conf ) вы должны быть уверены, что прослушивает локальные DNS-запросы со строкой listen-address=127.0.0.1 .
Если вы измените конфигурацию dnsmasq, не забудьте запустить sudo /etc/init.d/dnsmasq restart
Я надеюсь, это поможет.
Комментирование не dns=dnsmasq отменяет цель установки DNSmasq. Я внес listen-address=127.0.0.1 изменения, и теперь, похоже, они работают нормально.
У меня такая же проблема.
dnsmasq-base был установлен и прослушан на порту 53, препятствующем dnsmasq запуску.
Для этой же цели можно использовать dnsmasq-base insead dnsmasq : просто используйте другой каталог конфигурации: тот, который находится в Network Manager папке:
Проверьте, что прослушивает порт 53 (домен) с помощью:
Отключите все службы, работающие на этом порту. Это обычно systemd-resolved .
Я собираюсь также, mask чтобы он не запускался автоматически при перезагрузке.
Чтобы отменить то, что вы сделали:
Также sudo update-rc.d systemd-resolved disable может остановить автоматический запуск при загрузке, но я не проверял. Используйте defaults вместо, disable чтобы отменить команду.
Или вы можете изменить порт, который прослушивает dnsmasq, отредактировав файл конфигурации:
Нажмите Ctrl + W и введите listen-address= и нажмите Enter.
Раскомментируйте строку и добавьте 127.0.0.1 с портом, отличным от 53, например:
РЕДАКТИРОВАТЬ: немного погуглил, и я нашел решение . Кажется, что сетевой менеджер зависит от пакета, называемого «dnsmasq-base», который предоставляет некоторые функции dnsmasq. Запись Dnsmasq в Ubuntu Wiki гласит, что
«Обратите внимание, что пакет« dnsmasq »мешает сетевому менеджеру, который может использовать« dnsmasq-base »для предоставления услуг DHCP при совместном использовании подключения к Интернету. Поэтому, если вы используете сетевой менеджер (хорошо только в простых установках), установите dnsmasq». -base, но не dnsmasq. Если у вас более сложная настройка, удалите сетевой менеджер, используйте dnsmasq или подобное программное обеспечение (bind9, dhcpd и т. д.) и настройте вещи вручную. "
Другими словами: вы хотите использовать dnsmasq? Тогда тебе лучше знать, что ты делаешь. Упомянутое ранее решение предлагает заменить dnsmasq-base на dnsmasq следующим образом (первая команда также удалит network-manager):
И вот некоторые общие комментарии по поиску того, что блокирует ваши порты: Вы можете найти то, что прослушивает какой порт, используя lsof :
перечислит порты IPv4 из-за -i4, в то время как
перечислит порты IPv6. Или просто введите
Это должно (надеюсь) рассказать вам, что использует порт 53. -Pn Коммутаторы командной строки предотвращают преобразование номера порта / IP-адреса хоста в имена.
Я установил стек Bitnami Django, который включал PostgreSQL 8.4.
При запуске psql -U postgres я получаю следующую ошибку:
PG определенно работает, и pg_hba.conf файл выглядит так:
«Доказательство», что pg работает:
Я понятия не имею, о чем вы спрашиваете, и вы никогда не предоставляли информацию. Это 100 человек, которые получают общую ошибку и сообщают о разных вещах. Это полностью вне формата для сайта.
Эта проблема возникает из-за установки postgres пакета без номера версии. Хотя postgres будет установлен и будет правильной версии, скрипт для настройки кластера не будет работать правильно; это проблема упаковки.
Если вам удобно, postgres есть скрипт, который вы можете запустить, чтобы создать этот кластер и postgres запустить его. Тем не менее, есть более простой способ.
Сначала удалите старую установку postgres. В настоящее время проблема заключается в 9.1, поэтому я буду считать, что это то, что вы установили
Теперь просто переустановите
Запишите название пакета с номером версии. НТН.
Работал для Ubuntu 16.04 и Postgres 9.5, но сначала должен был удалить каждый пакет, связанный с Postgres.
Я предполагаю, что сервер на самом деле слушает сокет, /tmp/.s.PGSQL.5432 а не тот /var/run/postgresql/.s.PGSQL.5432 , к которому ваш клиент пытается подключиться. Это типичная проблема при использовании скомпилированных вручную или сторонних пакетов PostgreSQL в Debian или Ubuntu, потому что исходным по умолчанию для каталога сокетов Unix-домена является, /tmp но пакет Debian меняет его на /var/run/postgresql .
Возможные обходные пути:
- Используйте клиентов, предоставленных вашим сторонним пакетом (звонок /opt/djangostack-1.3-0/postgresql/bin/psql ). Возможно, удалите все пакеты, поставляемые с Ubuntu (это может быть сложно из-за других обратных зависимостей).
- Исправьте каталог сокетов стороннего пакета, чтобы он был совместим с Debian / Ubuntu.
- -H localhost Вместо этого используйте для подключения через TCP / IP.
- Используйте -h /tmp или эквивалентную PGHOST настройку, чтобы указать на правильный каталог.
- Не используйте сторонние пакеты.
Это работает для меня:
Включить или добавить:
Перезапустите ядро базы данных:
Также вы можете проверить файл pg_hba.conf
И добавьте адрес своей сети или хоста:
listen_address = '*' сделал свое дело. он только слушал на "localhost", а не на 127.0.0.1. благодарю вас!
Боже мой . наконец то, что сработало - ничего больше не сработало, пока я не добавил адрес и не прокомментировал адрес для прослушивания.
Вы можете использовать, psql -U postgres -h localhost чтобы заставить соединение происходить по TCP вместо доменных сокетов UNIX; ваш netstat вывод показывает, что сервер PostgreSQL прослушивает порт 5432 локального хоста.
Вы можете узнать, какой локальный сокет UNIX используется сервером PostgrSQL, используя другой вызов netstat :
В любом случае, интерфейсы, на которых слушает сервер PostgreSQL, настроены в postgresql.conf .
Просто создайте мягкую ссылку, подобную этой:
Это сработало для меня и, казалось, было самым простым решением без изменения конфигурации postgresql. Будьте уверены, что вы являетесь суперпользователем при попытке сделать ссылку.
Я заставляю это работать этим:
Выберите предпочитаемые локали и запустите
(9.5 - это моя версия postgresql)
и тогда это работает!
Ха, извини, я думаю, команды дали понять. для меня, я сталкиваюсь с этой проблемой, когда переустанавливаю postgresql, я пытаюсь перезапустить его по типу, service postgresql restart но он говорит, что у меня не было никакого кластера postgresql. Тогда я найду способ выручить меня :)
После трех часов поиска в Google вы, наконец, решили мою проблему. dpkg-reconfigure locales это чертовски важно.
Мне пришлось скомпилировать PostgreSQL 8.1 на Debian Squeeze, потому что я использую Project Open, который основан на OpenACS и не будет работать на более поздних версиях PostgreSQL.
Конфигурация компиляции по умолчанию помещает unix_socket в систему /tmp , но проект Open, который основывается на PostgreSQL, не будет работать , так как это выглядит для unix_socket на /var/run/postgresql .
Есть настройка, postgresql.conf чтобы установить местоположение сокета. Моя проблема заключалась в том, что либо я мог установить /tmp и psql работать, но не открыть проект, либо я мог установить его /var/run/postgresql и psql не работать, но открытие проекта сделало.
Одно из решений этой проблемы состоит в том, чтобы установить сокет для /var/run/postgresql и затем запустить psql , основываясь на предложении Питера, как:
Это выполняется локально с использованием локальных разрешений. Единственным недостатком является то, что он больше печатает, чем просто "psql".
В моем случае вместо:
и явно установить unix_socket /var/run/postgresql/.s.PGSQL.5432 в postgresql.conf .
Решение:
и это. ( 9.3 - это моя текущая версия PostgreSQL. Напишите свою версию!)
Если ваша служба Postgres запущена и работает без каких-либо ошибок или при запуске службы Postgres нет ошибок, но вы все еще получаете указанную ошибку, выполните следующие действия.
Шаг 1: Запуск pg_lsclusters покажет все кластеры postgres, работающие на вашем устройстве
Скорее всего, статус будет ниже в вашем случае и сервис Postgres
Шаг 2: перезапустите pg_ctlcluster
Шаг 3: Шаг 2 не удался и выдал ошибку
Если этот процесс не будет успешным, он выдаст ошибку. Вы можете увидеть журнал ошибок на /var/log/postgresql/postgresql-9.6-main.log
Моя ошибка была:
Шаг 4: проверьте право собственности на postgres
Убедитесь, что postgres это владелец /var/lib/postgresql/version_no/main
Если нет, запустите
Шаг 5: Проверьте, что пользователь postgres принадлежит к группе пользователей ssl-cert
В моем случае это было вызвано опечаткой, которую я сделал при редактировании /etc/postgresql/9.5/main/pg_hba.conf
Но MD5 должен был быть в нижнем регистре md5 :
Это ответ, который исправил это для меня :) Я ранее поменял свой trusted вместо trust , и не перезапустил службу, и он сломался только на следующий день, когда я уже забыл, что я изменил
Я обнаружил, что удаление Postgres звучит неубедительно. Это помогает решить мою проблему:
Запустите сервер postgres:
Убедитесь, что сервер запускается при загрузке:
Подробную информацию можно найти на сайте DigitalOcean здесь.
Во-первых, отключите все параметры ведения журнала в postgresql.conf. Это раздел:
Закомментируйте все в этом разделе. Затем перезапустите сервис.
При перезапуске используйте /etc/init.d/postgresql start или restart я нашел полезным находиться в режиме суперпользователя при перезапуске. У меня было открыто окно x только для этой операции. Вы можете установить этот режим суперпользователя с помощью sudo -i .
Убедитесь, что к серверу можно подключиться с помощью этой простой команды: psql -l -U postgres
Если это не помогает, то подумайте:
Я менял владельца многих папок, пытаясь найти решение. Я знал, что я, вероятно, буду пытаться вернуть владельцам этих папок еще chmod два дня. Если вы уже перепутали владельцев этих папок и не хотите полностью очищать свой сервер, начните отслеживать настройки всех затронутых папок, чтобы вернуть их в исходное состояние. Возможно, вы захотите попробовать выполнить параллельную установку в другой системе и систематически проверять владение и настройки всех папок. Утомительно, но вы можете получить доступ к своим данным.
пожалуйста, помогите в этом. Эта ошибка не кажется последовательный. Это было исправлено в прошлом, перезагрузив машину, изменив системное время в соответствии с доменным временем и некоторыми предложениями в сети. Пожалуйста, помогите в этом.
Это довольно распространенная ошибка с различными причинами: начните здесь с КБ 811889
- какая версия SQL Server?
- и Windows на клиенте и сервере?
- локальный или сетевой экземпляр SQL?
- домен или рабочая группа? Провайдер?
- смена пароля
- локальные ошибки журнала windows? любые другие приложения?
похоже, что ваш компьютер некоторое время не связывался с аутентифицирующим контроллером домена. (Раньше это случалось на моем ноутбуке несколько раз.)
Это также может произойти, если срок действия пароля истек.
У меня была такая же проблема после изменения пользователя, который запускал MSSQLSERVER-Service
для решения неправильных SPNs с SQL Server я использовал этот инструмент
в моем случае это сработало очень хорошо.
Первое, что вы должны сделать, это зайти в логи ( Management\SQL Server Logs ) и посмотреть, если SQL Server successfully registered the Service Principal Name (SPN) . Если вы видите какую-то ошибку ( The SQL Server Network Interface library could not register the Service Principal Name (SPN) for the SQL Server service ), то вы знаете, с чего начать.
мы видели, что это произошло, когда мы изменили учетную запись, под которой работал SQL Server. Сброс его в локальную системную учетную запись решил проблему. Microsoft также имеет руководство при ручной настройке SPN.
эта ошибка обычно возникает, когда срок действия учетной записи пользователя Windows истек, и он уже вошел в систему со старым паролем. Просто попросите пользователя перезагрузить компьютер и проверить, истек ли срок действия пароля или он изменил пароль. Надеюсь, это поможет.
Я решил мой Cannot Generate SSPI Context ошибка при использовании диспетчера конфигурации SQL Server. Поскольку у меня есть собственный клиент SQL Server 10.0 на моей машине, соединение с сервером пытается использовать именованные каналы (или общую память?). Другие машины могут запускать мое приложение без проблем. Когда я смотрел на configuration manager, именованные каналы и общая память были включены (хорошо). Однако под псевдонимом имя компьютера было там с принудительным TCP. Так как я не знал, какой эффект это изменит я бы изменил строку подключения в своей программе, чтобы использовать .вместо этого . Зафиксированный.
Если вы размещаете на IIS,убедитесь, что пароль для учетной записи AppPool не изменился.
Если это так, выполните следующие действия:
- перейти к IIS
- нажмите на пулы приложений
- выберите AppPool вашего приложения
- щелкните правой кнопкой мыши на вашем AppPool
- Дополнительные параметры
- личность
- Обновить Пароль
- Перезапустить AppPool
ошибка "не может генерировать контекст SSPI" является очень общей и может произойти по множеству причин. Это просто ошибка покрытия для любой основной ошибки Kerberos / NTLM. Ссылка на статью Gbn в KB является очень хорошей отправной точкой и обычно решает проблемы. Если у вас все еще есть проблемы, я рекомендую выполнить действия по устранению неполадок в Устранение Ошибок Kerberos.
решение, предложенное indu_teja, говорит:
- мы не сможем подключиться к SQL Server удаленно.
- однако мы сможем подключиться к сервер с локальной учетной записью.
- вам нужно сбросить SPN. Используйте synytax "SET SPN". Вы можете проверить синтаксис в net один раз.
- измените учетную запись службы sql server с учетной записи домена на локальную учетную запись, перезапустите sql, а затем снова сбросьте учетную запись домена и перезапустите sql server.
У меня была та же проблема, и все, что я сделал, это удалил учетные данные входа пользователя в sql server, используя другой идентификатор пользователя и добавив их обратно.
Я могу решить эту проблему, сбросив домен (серверная машина, которая является сервером домена, но не связана с SQL Server, кроме управления доменом), а затем клиентские машины.
спасибо всем за вашу немедленную поддержку!
имел действительно странный экземпляр этого; все веб-продукты, которые имели строки подключения, содержащие имя компьютера windows SQL server, работали нормально, но продукты, которые имели FQDN с внутренним доменом, прикрепленным, дали ошибку SSPI. т. е. ИМЯ КОМПЬЮТЕРА против ИМЯ КОМПЬЮТЕРА.ДОМЕН (ping всегда работал так, как ожидалось)
Это только дало проблемы, когда новый SQL server использовался и файлы хостов указали как имя компьютера, так и имя_компьютера в качестве FQDN для строка подключения.
решением в этом случае было установить все строки подключения только на имя компьютера, удалив ссылки на домен.
SQL: 2008R2 SQL2012
все тогда работало нормально.
в моем случае это был отсутствующий SPN, пришлось выполнить эти две команды:
setspn-A MSSQLSvc: ИМЯ_СЕРВЕРА ИМЯ_СЕРВЕРА setspn-A MSSQLSvc: ИМЯ_СЕРВЕРА: 1433 ИМЯ_СЕРВЕРА
другими словами, в моем случае у меня было FQDN там уже правильно, но не только имя NETBIOS, после добавления их он работал нормально. Ну, сначала это не так, но после ожидания 2 минут это произошло.
У меня была эта ошибка-это произошло потому, что мой пароль истек, и мне пришлось его изменить. Я этого не заметил, потому что в некоторых программах я все еще мог войти в систему, и все будет работать нормально (включая windows), но я не мог войти ни на один sql-сервер.
возможно, вы использовали Integrated Security = SSPI в строке подключения. SSPI используется для доверенных соединений с использованием проверки подлинности Windows.следовательно, для правильной работы при проверке подлинности windows Система и сервер баз данных должны находиться в одном домене и использовать один адрес DNS-сервера или в доверенном домене.
Если ваша система и сервер баз данных находятся в одном домене, проверьте адрес DNS-сервера свойств IPV4 в сетевом подключении вашей системы и предоставьте то же самое DNS-сервер используется сервером баз данных.
Читайте также: