MySQL [警告] IPアドレスを解決できませんでした


27

VirtualBoxの Windows XPで実行されているCentOS 6.1仮想マシンでMySQL5.6.3を実行しています。

ネットワークカードはブリッジモードで構成されているため、物理マシンと仮想マシンは同じイーサネットカードを共有します。

仮想マシンでは、インターネットアクセス、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
Amin Sh

回答:


49

私見これは、mysqldがDNSの使用を停止する必要があるように聞こえます。

以下を実行してください:/etc/my.cnfにこれを追加してください

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

それらはmysqlを再起動します。それ以降、mysqlはDNSを介してアドレスを解決しなくなります。

試してみる !!!

警告

MySQLドキュメントの次のオプションをお読みください。

また、これの使用には1つの制限があります。許可テーブルのホスト列でDNS名を使用することはできません。

更新2012-12-17 08:37 EDT

最近、mysqlを再起動せずに設定できるかどうかskip-host-cacheを尋ねられましたskip-name-resolve。確認してみましょう:

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

@Uday mysqlの内の唯一の懸念はこれです:あなたはのホスト列に効果的にDNS名を使用することはできませんmysql.user。ある場合は、代わりにパブリックまたはプライベート(優先)IPアドレスに置き換える必要があります。
-RolandoMySQLDBA

@RolandoMySQLDBA追加する方法があるskip-host-cacheskip-name-resolveMySQLを再起動せずには?
ラン

@Ranすみません、答えはノーです。これを反映するために回答を更新しました。
RolandoMySQLDBA

localhostからの接続など、考えられる問題はありますか?IPの問題に直面しています243.221.167.124.adsl-pool.sx.cn
マレーM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.