MySQL 连接时 localhost 及 127.0.0.1 的分别


在连接 MySQL 时, 虽然使用 localhost 或 127.0.0.1 都是连接到本机, 但连接的方式本质上是不同的。

连接 MySQL 时如果不加上 -h 参数, 会使用默认的 localhost 连接 MySQL, 而透过 localhost 连接 MySQL 是使用 Unix Socket (/var/lib/mysql/mysql.sock), 没有使 TCP/IP, 所以没有经过网络卡, 不会受防火墙的限制。而如果透过 127.0.0.1 连接 MySQL, 即在指令模式输入 mysql -h 127.0.0.1 连接 MySQL, 这便会使用 TCP/IP (使用 port 3306) 及经过网络卡传送资料。

有时发现可以用 localhost 连接, 但输入正确使用者名称及密码就不能连接到 127.0.0.1, 可能是网络设定的问题。

要检视相关资料, 可以登入 MySQL 后, 输入 status 指令, 便可以看到连线类型, 例如

localhost:

127.0.0.1:

Leave a Reply