【问题标题】:Accessing mysql as root keeps logging me as anonymous user以 root 身份访问 mysql 会一直将我记录为匿名用户
【发布时间】:2023-03-10 21:28:01
【问题描述】:

当我尝试时

sudo mysql -uroot -p

我没有收到任何错误,但似乎我没有以 root 身份登录,因为:

SELECT USER(),CURRENT_USER();

返回:

+----------------+----------------+
| USER()         | CURRENT_USER() |
+----------------+----------------+
| root@localhost | @localhost     |
+----------------+----------------+

我无法执行任何管理命令,例如GRANTUPDATE,我只能查看information_schema 表。

【问题讨论】:

  • 我通常在“-u”和“root”之间有一个空格
  • 我见过人们同时使用这两种变体。无论如何,-u root 给出相同的结果。

标签: mysql linux ubuntu


【解决方案1】:

http://dev.mysql.com/doc/refman/4.1/en/information-functions.html#function_current-user 说:

The value of CURRENT_USER() can differ from the value of 
USER(). ... One way this might occur is that there is no 
account listed in the grant tables for davida.

如果您无法以 root 身份登录,您可以在没有权限检查的情况下启动 MySQL:How to start MySQL with --skip-grant-tables? 或使用初始化文件 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html 启动 mysql。对于第二个选项,您应该使用 INSERT 而不是 UPDATE,因为您的表没有 root 用户。

【讨论】:

  • 好的,但是如何在不访问 root 用户的情况下编辑授权表?
  • 第一个解决方案对我不起作用(我仍然是匿名的),在第二个解决方案之后,我在尝试访问 mysql 时收到错误 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
  • 2后mysql重启了吗?初始化文件中的错误可能会阻止它重新启动。在这种情况下,恢复。此页面对您更有帮助:helpfromfriend.com/database/mysql/… 它结合了 1) 和 2) 以确保安全。
猜你喜欢
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
  • 2021-08-03
  • 2017-07-03
  • 2019-09-06
  • 1970-01-01
  • 2021-04-20
  • 1970-01-01
相关资源
最近更新 更多