用localhost不能连上mysql,但用127.0.0.1却可以,是啥原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用localhost不能连上mysql,但用127.0.0.1却可以,是啥原因相关的知识,希望对你有一定的参考价值。

localhost可以看成是一个域名,在一大部分情况下,它能解析出IP地址127.0.0.1而指向到本机,但是在本机的所有网卡都没有获得IP地址的情况下,在navicat中localhost就无法解析出IP地址127.0.0.1,导致连接失败! 参考技术A 使用mysql -uroot -p 或 mysql-uroot -p -h localhost 会默认去读/var/lib/mysql/**.socket 文件,肯定找不到的,因为你编译之后指定的目录为: /usr/local/mysql

解决办法:
mysql -uroot -p --socket=//usr/local/mysql/***.socket (注释:默认应该是 mysql.socket)
另外一种解决办法:在/etc/hosts中做映射 localhost 和127.0.0.1之间做一下.本回答被提问者和网友采纳
参考技术B 原因:
使用mysql -uroot -p 或 mysql-uroot -p -h localhost 会默认去读/var/lib/mysql/**.socket 文件,肯定找不到的,因为你编译之后指定的目录为: /usr/local/mysql
解决办法:
mysql -uroot -p --socket=//usr/local/mysql/***.socket (注释:默认应该是 mysql.socket)
另外一种解决办法:在/etc/hosts中做映射 localhost 和127.0.0.1之间做一下.
参考技术C mysql有控制哪些地址可以登录的功能,应该是配置了127.0.0.1可以登录,而localhost不能登录。
你可以试下下面的语句:
GRANT
all
on
*.*
to
'root'@'localhost'
IDENTIFIED
by
'123456';
flush
PRIVILEGES;

以上是关于用localhost不能连上mysql,但用127.0.0.1却可以,是啥原因的主要内容,如果未能解决你的问题,请参考以下文章

连接mysql不能用ip只能用localhost或者127.0.0.1的 解决办法

使用phpstudy 后,在电脑用localhost能访问 但用手机输入本地ip却不能访问 是为啥

localhost 为啥不是127.0.0.1而是0:0:0:0:0:0:0:1

[日常] 解决mysql localhost可以连接但是127.0.0.1不能连接

mysql 数据库远程连接不上,用mysql 自带的、navicat工具都不能连上。

localhost与127.0.0.1区别