Не вдалося вирішити IP-адресу MySQL [Попередження]


27

Я запускаю MySQL5.6.3 на віртуальній машині CentOS 6.1, що працює на Windows XP у VirtualBox .

Мережева карта налаштована в мостовому режимі, тому мої фізичні та віртуальні машини мають однакову карту Ethernet.

На віртуальній машині все працює добре: доступ до Інтернету, пошук DNS. Однак підключення до демона MySQL потребує певного часу, і в журналах відображається це попередження:

[Попередження] IP-адресу "192.168.1.201" не вдалося вирішити: Тимчасовий збій у дозволі імені

192.168.1.201 - це моя хост-машина, на якій я запускаю клієнт MySQL.

Схоже, хоча пошукові записи DNS працюють нормально, зворотні пошукові запити DNS закінчуються в тайм-ауті.

Ось конфігурація віртуальної машини:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="08:00:27:4B:3D:7C"
NM_CONTROLLED="yes"
ONBOOT="yes"
NETMASK=255.255.255.0
IPADDR=192.168.1.200
GATEWAY=192.168.1.1
PEERDNS=yes

# cat /etc/resolv.conf
nameserver 192.168.1.1

Чи є щось не так у моїй конфігурації мережі?


зверніться до моєї іншої відповіді на це запитання: serverfault.com/a/778161/96578
Амін Ш.

Відповіді:


49

IMHO Це здається, що вам потрібно mysqld, щоб перестати використовувати DNS.

Будь ласка, виконайте наступне: Додайте це до /etc/my.cnf

[mysqld]
skip-host-cache
skip-name-resolve

Їх перезапустіть mysql. З цього моменту mysql більше не буде вирішувати адреси через DNS.

Спробувати !!!

КАВАТИ

Будь ласка, прочитайте ці параметри в Документації на MySQL:

Також є одне обмеження на використання цього: Ви не можете використовувати імена DNS у стовпці хосту жодної із таблиць грантів.

ОНОВЛЕННЯ 2012-12-17 08:37 EDT

Я нещодавно запитав, skip-host-cacheі skip-name-resolveможе бути встановлений без перезавантаження MySQL. Давай дізнаємось:

mysql> show variables like '%host%';
+---------------+--------------+
| Variable_name | Value        |
+---------------+--------------+
| hostname      | ************ |
| report_host   |              |
+---------------+--------------+
2 rows in set (0.00 sec)

mysql> show variables like 'skip_%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| skip_external_locking | ON    |
| skip_name_resolve     | OFF   |
| skip_networking       | OFF   |
| skip_show_database    | OFF   |
+-----------------------+-------+
4 rows in set (0.00 sec)

mysql> set global skip_name_resolve = 1;
ERROR 1238 (HY000): Variable 'skip_name_resolve' is a read only variable
mysql>

Як показано, skip-host-cacheне відображається у списку глобальних змінних. Щодо skip_name_resolve, це було видно. Однак вона не може динамічно змінюватися, оскільки це змінна лише для читання.

Таким чином, skip-host-cacheі skip-name-resolveможе бути змінено лише за допомогою перезавантаження mysql.


Чи є у нас якісь проблеми внаслідок відключення пошуку DNS?
Удай

@Uday єдине занепокоєння в mysql таке: Ви не можете ефективно використовувати ім'я DNS у стовпці хосту mysql.user. Якщо у вас є такі, вам потрібно замінити їх загальнодоступною або приватною (бажаною) IP-адресою.
RolandoMySQLDBA

@RolandoMySQLDBA є спосіб , щоб додати skip-host-cacheі skip-name-resolveбез перезавантаження MySql?
Пробіг

@Ran Вибачте, відповідь - ні. Я оновив свою відповідь, щоб це відобразити.
RolandoMySQLDBA

Чи може бути якась така проблема, як підключення до localhost чи будь-яка інша проблема? Я зіткнувся з проблемою для ip243.221.167.124.adsl-pool.sx.cn
Malay M
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.