Mysql 没有特定用户登录

Mysql login without a specific user

今天我遇到了一个问题,我无法从 mysql cli 中找到由 ROR 项目创建的数据库。一些峰值之后,事实证明我没有以 root 身份登录,我只是使用 mysql 没有任何参数。所以我的问题是,如果您使用 'mysql' 命令登录,您以谁的身份登录,您拥有什么权限? 顺便说一下,mysql 版本是 5.5 .

回复标记为重复:

实际上,我不认为这是与 MySQL Utilities - ~/.my.cnf option file 的重复;我检查了我的环境,我没有默认配置文件,也没有在任何地方存储任何密码。我的问题是我正在登录,就像使用裸 mysql 命令一样。一个线索是当我尝试查询 mysql.user 时,我收到了下面的消息。所以我想我是作为@localhost 登录的,但是这个名字是从哪里来的?

Blockquote mysql> SELECT host, user, password from mysql.user; ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for table 'user' mysql>

只有 mysql.user table 中列出的用户可以登录。

SELECT host, user, password from mysql.user; -- MySQL before 5.7
SELECT host, user, authentication_string from mysql.user; -- MySQL 5.7 +

对于 CLI 访问,mysql 配置文件可以输入您的密码。该文件的路径和名称因您使用的不同操作系统和数据库版本而异。

无密码访问MySQL可能意味着:

  • 您的用户帐号根本没有密码。
  • 或者,您不需要输入密码,因为您的配置文件已经包含它。 (在这个问题上,这可能是你的方式。)

使用这两个选项可能都不安全。

另见: