Вопрос или проблема
[2023-08-28 14:35:33,070] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "POST /domain/add HTTP/1.1" 400 -
[2023-08-28 14:35:33,095] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/assets/css/style.css HTTP/1.1" 304 -
[2023-08-28 14:35:33,106] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/assets/css/source_sans_pro.css HTTP/1.1" 304 -
[2023-08-28 14:35:33,111] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/generated/main.css?aa4c2493 HTTP/1.1" 304 -
[2023-08-28 14:35:33,113] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/assets/css/roboto_mono.css HTTP/1.1" 304 -
[2023-08-28 14:35:33,137] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/img/favicon.png HTTP/1.1" 304 -
[2023-08-28 14:35:33,138] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/generated/main.js?a2786bcc HTTP/1.1" 304 -
[2023-08-28 14:35:33,141] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /user/image?username=cem HTTP/1.1" 304 -
это мой лог я использую mysql-сервер
это мой запрос
CREATE TABLE domains (
id INT AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(8) NOT NULL,
notified_serial INT UNSIGNED DEFAULT NULL,
account VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
options VARCHAR(64000) DEFAULT NULL,
catalog VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE UNIQUE INDEX name_index ON domains(name);
CREATE INDEX catalog_idx ON domains(catalog);
CREATE TABLE records (
id BIGINT AUTO_INCREMENT,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(10) DEFAULT NULL,
content VARCHAR(64000) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
disabled TINYINT(1) DEFAULT 0,
ordername VARCHAR(255) BINARY DEFAULT NULL,
auth TINYINT(1) DEFAULT 1,
PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX ordername ON records (ordername);
CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) CHARACTER SET 'utf8' NOT NULL,
PRIMARY KEY (ip, nameserver)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE TABLE comments (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
name VARCHAR(255) NOT NULL,
type VARCHAR(10) NOT NULL,
modified_at INT NOT NULL,
account VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
comment TEXT CHARACTER SET 'utf8' NOT NULL,
PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
CREATE TABLE domainmetadata (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
kind VARCHAR(32),
content TEXT,
PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
CREATE TABLE cryptokeys (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
flags INT NOT NULL,
active BOOL,
published BOOL DEFAULT 1,
content TEXT,
PRIMARY KEY(id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE INDEX domainidindex ON cryptokeys(domain_id);
CREATE TABLE tsigkeys (
id INT AUTO_INCREMENT,
name VARCHAR(255),
algorithm VARCHAR(50),
secret VARCHAR(255),
PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
это мой ввод dig
; <<>> DiG 9.18.12-0ubuntu0.22.04.2-Ubuntu <<>> @127.0.0.1
; (1 сервер найден)
;; глобальные параметры: +cmd
;; Получен ответ:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 25775
;; флаги: qr rd; ЗАПРОС: 1, ОТВЕТ: 0, АВТОРИТЕТ: 0, ДОПОЛНИТЕЛЬНЫЙ: 1
;; ПРЕДУПРЕЖДЕНИЕ: рекурсия запрошена, но недоступна
;; OPT PSEUDOSECTION:
; EDNS: версия: 0, флаги:; udp: 1232
;; QUESTION SECTION:
;. IN NS
;; Время запроса: 0 мс
;; СЕРВЕР: 127.0.0.1#53(127.0.0.1) (UDP)
;; ВРЕМЯ: Пн Авг 28 14:40:34 UTC 2023
;; РАЗМЕР СООБЩ. получен: 28
powerdns и pdnsadmin работают, но я не могу создать зону
это мой код статуса pdns
goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 13:59:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:04:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:09:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:14:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:19:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:24:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:29:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:34:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:39:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
вы нашли решение? Если да, можете поделиться? Я получаю ту же ошибку.
Ответ или решение
Ошибка HTTP 400 при создании зоны через интерфейс PowerDNS Admin может возникать по нескольким причинам. Давайте рассмотрим возможные причины и предложим пути их решения.
Возможные причины:
-
Ошибки в SQL-запросах:
- Проверьте, правильно ли написаны SQL-запросы для создания таблиц и индексов. Например, убедитесь, что названия полей таблиц интегрированы правильно и соответствуют требованиям вашей версии PowerDNS.
-
Некорректный формат данных:
- Возможно, что данные, которые вы пытаетесь отправить для создания зоны (например, имя домена), не соответствуют требованиям PowerDNS (например, длина названия домена не должна превышать 255 символов).
-
Отсутствие необходимых прав доступа в базе данных MySQL:
- Убедитесь, что пользователь MySQL, используемый для подключения PowerDNS, имеет все необходимые права для выполнения операций по добавлению данных в таблицы баз данных. Проверьте наличие прав на выполнение операций
INSERT
,UPDATE
иSELECT
.
- Убедитесь, что пользователь MySQL, используемый для подключения PowerDNS, имеет все необходимые права для выполнения операций по добавлению данных в таблицы баз данных. Проверьте наличие прав на выполнение операций
-
Настройки PowerDNS:
- Проверьте конфигурационный файл PowerDNS (обычно
pdns.conf
) на предмет корректности настроек, таких как маршрут к базе данных и драйвер базы данных. Убедитесь, что используется правильный драйвер MySQL.
- Проверьте конфигурационный файл PowerDNS (обычно
-
Зависимости и версии библиотек:
- Убедитесь, что у вас установлены все необходимые зависимости, включая библиотеки MySQL. Также проверьте версию PowerDNS и библиотек, может быть, вам нужно обновить их до более свежей, чтобы избежать ошибок совместимости (первичная проверка).
Пошаговые действия по устранению:
-
Проверка журнала ошибок:
- Изучите журналы ошибок PowerDNS для получения более подробной информации о том, что именно вызвало ошибку 400. Ваша запись логов показывает запрос, получающий код состояния 400, но нам необходимо больше информации о самой ошибке.
-
Тестирование соединения с базой данных:
- Попробуйте подключиться к вашей базе данных MySQL с помощью командной строки MySQL, используя учетные данные, которые PowerDNS использует для подключения. Убедитесь, что вы можете выполнять операции QUERY на таблицах
domains
иrecords
.
- Попробуйте подключиться к вашей базе данных MySQL с помощью командной строки MySQL, используя учетные данные, которые PowerDNS использует для подключения. Убедитесь, что вы можете выполнять операции QUERY на таблицах
-
Проверка структуры таблиц:
- Убедитесь, что таблицы, особенно
domains
иrecords
, созданы корректно и имеют правильные типы данных. Попробуйте выполнить встроенные SQL-инструкции для проверки и устранения проблем с синтаксисом.
- Убедитесь, что таблицы, особенно
-
Настройки прав пользователя:
- Проверьте и при необходимости обновите права доступа пользователя MySQL, который используется для связывания PowerDNS с базой данных:
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_user'@'localhost'; FLUSH PRIVILEGES;
- Проверьте и при необходимости обновите права доступа пользователя MySQL, который используется для связывания PowerDNS с базой данных:
-
Тестирование интеграции:
- Если все настройки правильные, попробуйте создать зону заново через консоль управления. Пробуйте использовать короткие имена и стандартные типы записей, чтобы исключить возможность оформления.
Заключение
После проведения всех этих исследований и исправлений вы должны иметь возможность создать зону через PowerDNS Admin. Если ошибка продолжает появляться, имеет смысл обратиться к официальной документации PowerDNS или на специализированные форумы для получения дополнительной поддержки. Система DNS может быть сложной, особенно с учетом различных версий и конфигураций, поэтому внимательно следите за обновлениями и исправлениями.
Если у вас есть дополнительные вопросы или нужна помощь, не стесняйтесь обращаться.