通过 127.0.0.1 而不是 localhost 连接 mysql

通过 127.0.0.1 而不是 localhost 连接 mysql

我使用以下命令在 Mac OS X 上连接了 mysql:

mysql -u root -p -h 127.0.0.1

登录后,我启动了以下命令:

select user();

结果显示:

 root@localhost

甚至有线,我已经通过SET PASSWORD命令更改了 127.0.0.1 上的 root 密码。

当我输入

show grants for 'root'@'127.0.0.1';

结果密码确实改变了。

不过我还是得用旧密码登录,命令如下:

mysql -u root -p -h 127.0.0.1

问题

  • 你能告诉我为什么会发生这种情况吗?
  • 这有什么问题吗?

答案1

使用 127.0.0.1 连接到 MySQL 需要 TCP/IP 协议。

问题是 mysql 客户端试图通过说

  • 如果您指定 127.0.0.1 并且不告诉我协议,我将使用套接字并表现得像本地主机连接。
  • 如果你指定 127.0.0.1 并告诉我使用 TCP/IP,那么我将使用 TCP/IP 连接

鉴于此,您必须按如下方式连接:

mysql -u root -p -h 127.0.0.1 --protocol=tcp

为了验证这一点,请在连接后运行此命令

SELECT USER(),CURRENT_USER();

两者都应该说[email protected]我如何查看我以哪个用户身份登录 MySQL?

试一试 !!!

相关内容