今天我遇到了一个问题,我无法从mysql cli中找到由ROR项目创建的数据库。经过一段时间的飙升,事实证明我没有以root身份登录,我只是使用mysql
而没有任何争论。所以我的问题是,如果你使用一个简单的mysql登录'命令,您登录的人以及您拥有的权限是多少?
顺便说一句,mysql版本是5.5。
实际上,我并不认为这与MySQL Utilities - ~/.my.cnf option file相同;我检查了我的环境,我没有默认的配置文件,我没有在任何地方存储任何密码。我的问题是我是谁登录好像使用裸mysql
命令一样。一个线索是当我尝试查询mysql.user时,我收到了下面的消息。所以我想我是以@localhost身份登录的,但这个名字的来源是什么?
块引用 MySQL的>从mysql.user中选择主机,用户,密码; ERROR 1142(42000):SELECT命令被拒绝给用户'' localhost'对于表'用户' MySQL的>
答案 0 :(得分:1)
只有mysql.user表中列出的用户才能登录。
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可能意味着:
这两个选项可能不安全使用。
另见,见: