我很困惑。当我使用127.0.0.1连接到mysql时。我得到一个只有测试数据库的mysql服务器。如果我使用localhost连接到数据库,我会看到我的数据库。为什么会这样。
注意,有一次我确实用mysql安装了macport。但我卸载它,我以为我删除了一切。我该怎么做才能彻底消除这个问题?现在我使用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时,我无法看到数据库;但我杀了上面的那些进程,现在我得到了我的表格,我从来没有改变任何权限
答案 0 :(得分:1)
这可能是因为您将权限明确设置为“root”@“localhost”。
您可能需要添加'root'@'127.0.0.1'
这篇文章应该有助于如何使用GRANT语法。
How to grant remote access permissions to mysql server for user?
=======来自评论========
听起来你可能有两个数据库实例正在运行。
您是否尝试过查看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
答案 1 :(得分:0)
这取决于如何在mysql中配置用户。您可能有两个用户,'user'@'127.0.0.1'
和'user'@'localhost'
具有对数据库的不同权限。
答案 2 :(得分:0)
以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');