免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3695 | 回复: 3
打印 上一主题 下一主题

ERROR 1042 (HY000): Can't get hostname for your ad [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-27 14:16 |只看该作者 |倒序浏览
ERROR 1042 (HY000): Can't get hostname for your ad
[root@localhost ~]# mysql -h 192.168.8.8 -u test -p
Enter password:
ERROR 1042 (HY000): Can't get hostname for your address

//解决办法:添加配置文件
[mysqld]
skip-name-resolve


#禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注
#意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接#请求!

#1:去掉mysql启动参数中的skip-name-resolve ,然后jdbc连接串用ip地址和主机名均可。

#2:如果保留启动参数skip-name-resolve 的话,在jdbc连接串中只能使用IP地址的方式连接数据库。

参考:

http://www.ixdba.net/article/89/2127.html

http://blog.chinaunix.net/u/25264/showart_1936561.html

论坛徽章:
0
2 [报告]
发表于 2011-05-27 14:35 |只看该作者
本帖最后由 liyihongcug 于 2011-05-27 14:49 编辑

110527 12:29:54 [ERROR] /usr/sbin/mysqld: unknown variable 'default-table-type=INNODB'
110527 12:29:54 [ERROR] Aborting

配置#default-table-type=INNODB

参考哦啊

   
域名解析文件hosts文件是什么?如何修改hosts文件?



如何修改hosts文件?

hosts文件的位置:xp,2000等系统在 C:\windows\system32\drivers\etc 文件夹中找到Hosts文件并用记事本打开(Windows 9x/Me系统在C:\Windows文件夹中找)
按照 ip地址  域名 的格式添加单独的一行记录。例如
72.14.219.190 www.hbcms.net
注意,IP地址前面不要有空格,ip地址和域名之间,要有至少1个空格。
修改后,一定要记得保存文件。
如何知道域名的IP地址已经生效?
在您的电脑上请按如下步骤操作:开始-->运行-->输入cmd-->ping 域名-->回车查看结果
显示结果类似 Reply from 220.181.31.183: bytes=32 time=79ms TTL=53
中间的  220.181.31.183 就是域名的IP地址
关闭全部的浏览器,重新打开,测试你刚才添加的域名是否能正常访问
如果访问不正常,请按照3步骤,检查你刚才设置的域名是否对应了正确的IP地址
域名解析文件Hosts是什么文件?有什么作用

1.加快域名解析

对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,这样当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。

2.方便局域网用户

在很多单位的局域网中,会有服务器提供给用户使用。但由于局域网中一般很少架设DNS服务器,访问这些服务要输入难记的IP地址,对不少人来说相当麻烦。现在可以分别给这些服务器取个容易记住的名字,然后在Hosts中建立IP映射,这样以后访问的时候我们输入这个服务器的名字就行了。

3.屏蔽网站

现在有很多网站不经过用户同意就将各种各样的插件安装到你的计算机中,有些说不定就是木马或病毒。对于这些网站我们可以利用Hosts把该网站的域名映射到错误的IP或自己计算机的IP,这样就不用访问了。比如不想访问www.XXXX.com,那我们在Hosts写上以下内容:

127.0.0.1 www.XXXX.com #屏蔽的网站
0.0.0.0 www.XXXX.com #屏蔽的网站

这样计算机解析域名就解析到本机或错误的IP,达到了屏蔽的目的。

4.顺利连接系统

对于Lotus的服务器和一些数据库服务器,在访问时如果直接输入IP地址那是不能访问的,只能输入服务器名才能访问。那么我们配置好Hosts文件,这样输入服务器名就能顺利连接了。

最后要指出的是,Hosts文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。



linux 下的设置如下:

1. 关于/etc/host,主机名和IP配置文件


Hosts - The static table lookup for host name(主机名查询静态表)


Linux 的/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。不同的linux版本,这个配置文件也可能不同。比如Debian的对应文件是/etc/hostname。


2. 配置文件


这个文件可以配置主机ip及对应的主机名,对于服务器类型的linux系统其作用还是不可忽略的。在局域网或是INTERNET上,每台主机都有一个IP地址,它区分开每台主机,并可以根据ip进行通讯。但IP地址不方便记忆,所以又有了域名。在一个局域网中,每台机器都有一个主机名,用于区分主机,便于相互访问。


Linux主机名的相关配置文件就是/etc/hosts;这个文件告诉本主机哪些域名对应那些ip,那些主机名对应哪些ip:


比如文件中有这样的定义

192.168.1.100 linumu100 test100


假设192.168.1.100是一台网站服务器,在网页中输入http://linumu100或http://test100就会打开192.168.1.100的网页。


通常情况下这个文件首先记录了本机的ip和主机名:

127.0.0.1 localhost.localdomain localhost


3. 配置文件格式说明


一般/etc/hosts 的内容一般有如下类似内容:

127.0.0.1 localhost.localdomain localhost

192.168.1.100 linmu100.com linmu100

192.168.1.120 ftpserver ftp120


一般情况下hosts文件的每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。


第一部份:网络IP地址;

第二部份:主机名或域名;

第三部份:主机名别名;


当然每行也可以是两部份,即主机IP地址和主机名;比如 192.168.1.100 linmu100。


这里可以稍微解释一下主机名(hostname)和域名(Domain)的区别:主机名通常在局域网内使用,通过hosts文件,主机名就被解析到对应ip;域名通常在internet上使用,但如果本机不想使用internet上的域名解析,这时就可以更改hosts文件,加入自己的域名解析。


4. /hosts文件可以帮助解决哪些问题


4.1 远程登录linux主机过慢问题


有时客户端想远程登录一台linux主机,但每次登录输入密码后都会等很长一段时间才会进入,这是因为linux主机在返回信息时需要解析ip,如果在linux主机的hosts文件事先加入客户端的ip地址,这时再从客户端远程登录linux就会变很快。


注:这里所说的远程登录不仅仅是ssh,还可能是mysql远程登录,或是文件共享的查询等。


4.2 双机互连


当两台主机只是双机互连时,这时两台主机都需要设置自己的ip,同时在对方的hosts文件里加入自己的ip和主机名。


5. 主机名修改工具hostname;


其实主机名的修改也有专用工具,就是hostname

hostname - show or set the system’s host name


显示主机名:

# hostname

linmu100

此主机的主机名是linmu100,不加参数是用来显示当前主机的主机名;


临时设置主机名:

# hostname test100

# hostname 注:显示主机名

test100

通过hostname 工具来设置主机名只是临时的,下次重启系统时,此主机名将不会存在;


显示主机IP:

# hostname -i

192.168.1.100

转载http://linux.ccidnet.com/art/9513/20080326/1401805_1.html





原文地址 http://www.hbcms.com/cms/40/365.html

论坛徽章:
0
3 [报告]
发表于 2011-05-27 15:24 |只看该作者
本帖最后由 liyihongcug 于 2011-05-27 15:27 编辑

采用的是桥接
当前环境 宿主机器 xp(mysql server a )
       虚机      linux(mysql server b)

现在发现 2个 ip能互相ping通  而且局域网 同网关机器都能 彼此互通
但是 宿主机器 xp  能 mysql 链接 mysql server b
反过来 不可以,  linux(mysql server b)里不能访问  宿主xp(mysql server a )

而且测试 局域网其他机器都不能 mysql 链接 mysql server a 和 mysql server b
都是错误Enter password:
ERROR 1042 (HY000): Can't get hostname for your address
加了 [mysqld]
skip-name-resolve没有用

确认windows  局域网没做域管理
以前没有遇到这样的情况(奇怪昨天是可以连接的 没有出现这个情况)

难道桥接方式下mysql只能单向访问?

论坛徽章:
0
4 [报告]
发表于 2011-05-27 15:39 |只看该作者
0  down vote  favorite
1
       

Have MySQL 5.5 Server setup on a windows machine. I am able to connect to the server from console / app running on the same machine but not from a remote machine. While connecting using the command

mysql -h xx.xx.xx.xx --port=3306 -u root -p

I get error as:

ERROR 1042 (HY000): Can't get hostname for your address

Have tried putting entry of client ip in server's etc\hosts file as

<client-ip>  <client-hostname>

    * Server: MySQL ver 5.5
    * OS: Windows XP

mysql etc-hosts
link|edit|flag
       
edited Aug 31 '10 at 19:44
jscott
5,96911021
       
asked Aug 25 '10 at 7:54
Mohit Nanda
162212

63% accept rate
       
       
2 Answers
active oldest votes
up vote 1 down vote accepted
       

Hi there, I believe this is to do with the fact that MySQL tries to establish the DNS name associated with your IP address on connect. See here for more information at the MySQL site.

You have two options:

1) Fix the connecting machine's reverse DNS. Since you've already added the machine to the hosts file, this might be unnecessary. You should also issue a FLUSH HOSTS statement on the MySQL server. See the same link above for more information about this.

2) Run MySQL with the '--skip-name-resolve' option. However, if you do this, you won't be able to use DNS names in GRANT statements. Instead you'll be restricted to using IP addresses.

2.1) or put in my.ini :

[mysqld]
skip-name-resolve

I'd recommend (1) if you can.

Hope this helps.
link|edit|flag
       
edited Feb 17 at 13:00
Community♦
170147
       
answered Aug 25 '10 at 8:36
grw
285
       
       
+1 The 2nd option worked.. – Mohit Nanda Aug 25 '10 at 12:14
up vote 0 down vote
       

This seems to be a reported bug in MySQL ver5.5. It was resolved using the following option in [server] section of my.ini file

skip-name-resolve

It disables the DNS lookup by MySQL for connecting peers.

The only thing to keep in mind is:

    ...in this case, you can use only IP numbers in the MySQL grant tables.




[mysqld]
skip-name-resolve
# The TCP/IP Port the MySQL Server will listen on
port=3306

问题解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP