MySql连接

        服务器上新装的MySql,在客户机上远程连接时出现以下错误:mysql error number 1042 can't get hostname for your address。查了一下MySql的连接机制,默认情况下,mysql服务器接收到来自远程客户机的连接时,会根据客户机的ip地址查找相应的客户机名,也就是域名的反向解析,如果解析出错,则mysql服务器会拒绝该客户机的连接。解决办法有两个。

    1、修改服务器的host文件,在host文件中新增一行:客户机IP地址 客户机域名,告诉mysql发起连接的客户机域名,这个时候如果mysql能解析到客户机域名,连接就会成功。

     但是一般情况下,客户机不可能都有自己的域名,如果服务器和客户机在一个局域网内,客户机域名可以换成它的计算机名称。但是这种方式毕竟还是太死板。第二种方法就是修改mysql文件的my.ini文件。

    2、修改my.ini文件

      在服务器的mysql安装目录下找到my.ini文件,在[mysqld]下面新增一行skip-name-resolve,这是告诉mysql跳过域名处理,但是采用这种方式后mysql只将接受以ip地址形式的连接,不能再使用域名或计算机名。

    我在服务器上的host文件上加上了自己机器的域名解析,也修改了my.ini文件,心想这下该解决问题了,再次连接,没想到又蹦出了新错误,这回是host  xxx is not allowed to connect to this mysql server,说是不允许主机连接到mysql服务器,查看mysql库中的user表,结果只有一条host为localhost的记录,意思是只允许localhost对它进行连接,所以不仅远程客户机,因为设置了skip-name-resolve,只允许ip地址登录,就连本机也无法登录。解决办法是先将skip-name-resolve注释掉,直接在服务器上登录mysql,将该条记录的host的值由locaohost改为%即可。

       通过以上步骤,完全解决mysql连接报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值