MySQL [Uyarı] IP adresi çözülemedi


27

MySQL5.6.3'ü Windows XP'de VirtualBox'da çalışan bir CentOS 6.1 sanal makinesinde çalıştırıyorum .

Ağ kartı köprü modunda yapılandırılmıştır, böylece fiziksel ve sanal makinelerim aynı ethernet kartını paylaşır.

Sanal makinede her şey iyi çalışıyor: internet erişimi, DNS aramaları. Ancak, MySQL arka plan planına bağlantılar biraz zaman alıyor ve kayıtlar bu uyarıyı göstermeye devam ediyor:

[Uyarı] IP adresi '192.168.1.201' çözülemedi: İsim çözümünde geçici hata

192.168.1.201 MySQL istemcisini çalıştırdığım ana bilgisayar makinem.

DNS aramaları iyi çalışsa da, geriye doğru DNS aramaları zaman aşımına uğradı gibi gözüküyor .

İşte sanal makine yapılandırması:

# 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

Ağ yapılandırmamda bir sorun mu var?


bu soru için başka bir cevaba bakın: serverfault.com/a/778161/96578
Amin Sh

Yanıtlar:


49

IMHO Bu, DNS kullanmayı durdurmak için mysqld'e ihtiyacınız var gibi geliyor.

Lütfen aşağıdakileri yapın: Bunu /etc/my.cnf dosyasına ekleyin.

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

MySQL'i yeniden başlatırlar. O andan itibaren, mysql artık adresleri DNS üzerinden çözmeyecek.

Bir şans ver !!!

UYARI

Lütfen bu seçenekleri MySQL Dokümantasyonunda okuyun:

Ayrıca, bunu kullanmak için bir kısıtlama var: DNS adlarını hibe tablolarının herhangi birinin ana bilgisayar sütununda kullanamazsınız.

GÜNCELLEME 2012-12-17 08:37 EDT

Ben eğer son zamanlarda istendi skip-host-cacheve skip-name-resolvemysql yeniden başlatma olmadan belirlenebilir. Hadi bulalım:

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>

Gösterildiği gibi, skip-host-cacheglobal değişkenler listesinde görünmez. Gelince skip_name_resolve, görüldü. Ancak, salt okunur bir değişken olduğu için dinamik olarak değiştirilemez.

Bu nedenle, skip-host-cacheve skip-name-resolvesadece bir mysql restart ile değiştirilebilir.


DNS aramalarını devre dışı bırakmanın etkisi olarak herhangi bir problemimiz var mı?
Uday

@Günümüzde mysql içindeki tek endişe şudur: DNS adını etkin bir şekilde ana bilgisayar sütununda kullanamazsınız mysql.user. Eğer varsa, bunun yerine genel veya özel (tercih edilen) IP adresi ile değiştirmeniz gerekir.
RolandoMySQLDBA

@RolandoMySQLDBA eklemek skip-host-cacheve skip-name-resolveMySQL yeniden başlatmadan bir yolu var mı?
Ran

@Ran Üzgünüz, cevap hayır. Bunu yansıtacak şekilde cevabımı güncelledim.
RolandoMySQLDBA

Localhost'tan bağlantı veya başka herhangi bir sorun gibi olası bir sorun olabilir mi? 243.221.167.124.adsl-pool.sx.cn
Malay M
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.