MySQL 1042, "Can't get hostname for your address"


之前一直没问题,今天忽然提示


 sqlalchemy.exc.OperationalError
OperationalError: (OperationalError) (1042, "Can't get hostname for your address") None None

用MySQL-Front也报一样的错误,根据网上的
(1)修改hosts,取消注释 127.0.0.1 localhost
(2)修改bin中的ini配置文件,在[mysqld]下添加skip-name-resolve

但是一样的错误,卸载Mysql后重装也没用,在CMD里也同样出现,求解救……


 C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql -u root -p -h 127.0.0.1 -P 330
6
Enter password: **********
ERROR 1042 (HY000): Can't get hostname for your address

但是在MySQL Command Line Client中可以显示已有的数据库


 mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| test               |
| world              |
+--------------------+
6 rows in set (0.00 sec)

但是在CMD里面提示上面的错误

sqlalchemy mysql

精神病有所好转 10 years, 11 months ago

这是一个神器的问题,将MySQL服务的登陆身份改为本地系统账户,亲测有效

图片描述

Ko君D日常 answered 10 years, 11 months ago

但是在CMD里面提示上面的错误

你把127.0.0.1写成localhost试一下看看什么样

johnct answered 10 years, 11 months ago

会不会是 SQLAlchemy 里写错了?贴一下你的 SQLAlchemy 连接部分的代码?

曲终,人也散 answered 10 years, 11 months ago

解决办法

折腾了两天,各种修改配置文件,各种卸载和重装,投奔Ubuntu搞定后无法承受虚拟机的慢和卡,最终:

完全卸载

  • 命令行还能用的话,备份数据库
  • 控制面板卸载MySQL相关,删除安装相关文件夹,类似C:\Program Files\MySQL,C:\ProgramData\MySQL(ProgramData是隐藏的文件夹),C:\Users\Sky\AppData\Roaming\MySQL或Oracle
  • 删除注册表相关目录
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQ
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL(不放心还可以搜索删除相关的)

  • 总之相关的都删了,重启

安装 MySQL5.5

没错, MySQL5.5.10 ,安装完成,MySQL-Front链接成功。之前无数次我都是想安装比较新的版本(5.6.22,5.6.24,5.7.7等),无数次完全卸载和重装,但是无动于衷同样的错误,砸电脑的冲动都有了。

DSGwei answered 10 years, 11 months ago

Your Answer