【问题标题】:on my machine localhost is different from 127.0.0.1 for mysql在我的机器上 localhost 与 mysql 的 127.0.0.1 不同
【发布时间】:2014-01-31 00:54:27
【问题描述】:

我很困惑。当我使用 127.0.0.1 连接到 mysql 时。我得到一个只有测试数据库的 mysql 服务器。如果我使用 localhost 连接到数据库,我会看到我的数据库。这是为什么呢。

注意,有一次我确实使用 mysql 安装了 macports。但我卸载了它,我以为我删除了所有东西。我能做些什么来永久消除这个问题?现在我使用apache本机安装并手动安装了新的mysql

当我在我的 Mac 上查看我的进程时,我看到以下内容

root               82   0.0  0.0  2468784    424   ??  Ss   22Jan14   0:00.30 /opt/local/bin/daemondo --label=apache2 --start-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/a
root               81   0.0  0.0  2468784    392   ??  Ss   22Jan14   0:00.30 /opt/local/bin/daemondo --label=mysql5 --start-cmd /opt/local/etc/LaunchDaemons/org.macports.mysql5/mys

这些可能是自动启动的 macports mysql 和 apache 吗?以及如何将它们从自动启动中删除?

[编辑]

当我执行use mysql; SELECT user from user; 时,我得到以下信息

+------+
| user |
+------+
| root |
| root |
|      |
| root |
|      |
| root |
+------+

还要记住这一点。我使用 mysqlworkbench。是的,我没有设置密码,但是当我将主机从 localhost 更改为 127.0.0.1 时,我看不到数据库;但是我杀死了上面的那些进程,现在我得到了我的表,我从来没有改变过任何权限

【问题讨论】:

  • 包含所有数据库的登录use mysql; select user from user的结果是什么?
  • 你试过了吗>>wary.cc/NpdvD
  • 我想我解决了我的问题,但这不是用户问题。这是一个多进程问题。每个人都不相信,但我认为这是因为旧的 macports mysql 正在运行

标签: php mysql apache


【解决方案1】:

这可能是因为您将权限明确设置为 'root'@'localhost'。

您可能需要添加 'root'@'127.0.0.1'

这篇文章应该对如何使用 GRANT 语法有所帮助。

How to grant remote access permissions to mysql server for user?

======= 来自 cmets ========

听起来您可能有两个数据库实例正在运行。

您是否尝试过查看 MacPort StartupItems:Startup Reference

尝试打开终端并输入:launchctl

查看它是否在列表中并卸载它。

例如(我在你的 OP 中看不到整行,所以请在运行前检查/修改):
-> 每行应以.plist 文件结尾。

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.apache2/a....plist
sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql5/mys....plist

【讨论】:

  • 我杀死了这两个进程。现在,如果我使用 localhost 或 127.0.0.1 它们都显示正确的数据库;所以我想我解决了这个问题。问题是我如何停止我上面添加的那些进程在加载时自动启动
  • @numerical25 在帖子中添加一些可能有帮助的额外信息。
【解决方案2】:

这取决于用户在 mysql 中的配置方式。您可能有两个用户,'user'@'127.0.0.1''user'@'localhost',它们对数据库具有不同的权限。

【讨论】:

  • 我能够杀死我上面提到的那些进程,现在我的问题已经消失了。如果您的假设是正确的,我应该仍然有问题吗?
【解决方案3】:

以root身份登录mysql数据库 代码:

mysql -u root -p mysql

然后运行 代码:

SELECT password,host FROM user where user='root';

确保密码设置为 127.0.0.1 否则您无需密码即可登录: 代码:

SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('Add-Your_password-here');

来源:http://wary.cc/NpdvD

【讨论】:

    猜你喜欢
    • 2011-04-12
    • 2020-12-17
    • 2011-07-11
    • 2011-09-24
    • 2016-05-29
    • 2011-06-07
    • 2011-01-18
    • 2021-10-10
    相关资源
    最近更新 更多