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

本文介绍了解决在使用Navicat for MySQL连接远程MySQL服务器时遇到的“Can't get hostname for your address”错误的方法。通过在my.cnf文件中添加配置以解决主机名解析问题。

摘自: http://www.siutung.org/post/506/

 

使用Navicat for MySQL连接远程的MySQL服务器,却提示:Can't get hostname for your address
明明已经使用grant命令授权过了的呀,原来还需要再执行一步:

编辑/etc/my.cnf,在:
[mysqld]
内添加一行:skip-name-resolve

MySQL忽略数据库表名大小写
修改/etc/my.cnf,在
[mysqld]
内添加一行:lower_case_table_names=1


附:MySQL常见错误代码说明
1005:创建表失败 
1006:创建数据库失败 
1007:数据库已存在,创建数据库失败 
1008:数据库不存在,删除数据库失败 
1009:不能删除数据库文件导致删除数据库失败 
1010:不能删除数据目录导致删除数据库失败 
1011:删除数据库文件失败 
1012:不能读取系统表中的记录 
1020:记录已被其他用户修改 
1021:硬盘剩余空间不足,请加大硬盘可用空间 
1022:关键字重复,更改记录失败 
1023:关闭时发生错误 
1024:读文件错误 
1025:更改名字时发生错误 
1026:写文件错误 
1032:记录不存在 
1036:数据表是只读的,不能对它进行修改 
1037:系统内存不足,请重启数据库或重启服务器 
1038:用于排序的内存不足,请增大排序缓冲区 
1040:已到达数据库的最大连接数,请加大数据库可用连接数 
1041:系统内存不足 
1042:无效的主机名 
1043:无效连接 
1044:当前用户没有访问数据库的权限 
1045:不能连接数据库,用户名或密码错误 
1048:字段不能为空 
1049:数据库不存在 
1050:数据表已存在 
1051:数据表不存在 
1054:字段不存在 
1065:无效的SQL语句,SQL语句为空 
1081:不能建立Socket连接 
1114:数据表已满,不能容纳任何记录 
1116:打开的数据表太多 
1129:数据库出现异常,请重启数据库 
1130:连接数据库失败,没有连接数据库的权限 
1133:数据库用户不存在 
1141:当前用户无权访问数据库 
1142:当前用户无权访问数据表 
1143:当前用户无权访问数据表中的字段 
1146:数据表不存在 
1147:未定义用户对数据表的访问权限 
1149:SQL语句语法错误 
1158:网络错误,出现读错误,请检查网络连接状况 
1159:网络错误,读超时,请检查网络连接状况 
1160:网络错误,出现写错误,请检查网络连接状况 
1161:网络错误,写超时,请检查网络连接状况 
1062:字段值重复,入库失败 
1169:字段值重复,更新记录失败 
1177:打开数据表失败 
1180:提交事务失败 
1181:回滚事务失败 
1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库 
1205:加锁超时 
1211:当前用户没有创建用户的权限 
1216:外键约束检查失败,更新子表记录失败 
1217:外键约束检查失败,删除或修改主表记录失败 
1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器 
1227:权限不足,您无权进行此操作 
1235:MySQL版本过低,不具有本功能

posted on 2013-09-18 13:02  Alfa 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/wuyifu/p/3328237.html

ERROR 2003 (HY000): Can't connect to MySQL server on 'hostname' (100) 这个错误通常表明用户无法连接到MySQL服务器。这可能是由多种原因导致的,包括但不限于网络问题、服务器配置问题、MySQL服务没有运行、或是访问权限配置不当等。以下是一些排查和解决该问题的步骤: 1. 确认MySQL服务是否正在运行。可以在服务器上执行如下命令: ``` sudo service mysql status ``` 或者 ``` systemctl status mysql ``` 如果服务没有运行,需要启动MySQL服务: ``` sudo service mysql start ``` 或者 ``` systemctl start mysql ``` 2. 检查MySQL的配置文件,确保服务器配置为允许远程连接。这通常涉及编辑`my.cnf`(Linux)或`my.ini`(Windows)文件,并确认或修改`bind-address`参数设置为`0.0.0.0`,这样MySQL监听所有网络接口。 3. 确认MySQL用户账户的权限。用户可能需要具有远程访问权限。可以通过以下SQL命令来授予: ``` GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 这里`database_name`是用户要连接的数据库名称,`username`是用户账户名,`password`是该用户的密码。 4. 检查防火墙设置,确保MySQL端口(默认是3306)没有被阻止。 5. 如果是在本地网络中遇到这个问题,确认网络连接和服务器的IP地址是否正确。同时,如果是从不同的网络(比如使用公共IP地址)尝试连接,可能需要在路由器上设置端口转发。 6. 如果使用的是第三方客户端或工具(如phpMyAdmin, MySQL Workbench等),确保工具的连接设置正确,包括服务器地址、端口、用户名和密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值