首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL中以根用户身份登录?

问如何在MySQL中以根用户身份登录?
EN

Ask Ubuntu用户
提问于 2019-01-01 08:03:22
回答 1查看 49.8K关注 0票数 5

我已经安装了MySQL,在安装过程中,我被要求输入一个密码,但是现在我的老师说我们应该可以在没有任何密码的情况下以root用户身份登录。

这是可行的,但我没有任何特权:

这不管用:

这也不是

EN

回答 1

Ask Ubuntu用户

发布于 2019-01-01 09:39:14

问题的起因

在root 5.7中以MySQL用户身份登录的默认配置需要使用身份验证套接字。这可以通过查询user表来验证:

代码语言:javascript
复制
mysql> select user,authentication_string,plugin from user where user='root';
+------+-----------------------+-------------+
| user | authentication_string | plugin      |
+------+-----------------------+-------------+
| root |                       | auth_socket |
+------+-----------------------+-------------+
1 row in set (0.00 sec)

来自文档:

套接字插件检查套接字用户名(操作系统用户名)是否与客户端程序指定的MySQL用户名与服务器匹配。如果名称不匹配,插件将检查套接字用户名是否与mysql.user系统表行的mysql.user列中指定的名称匹配。如果找到匹配项,则插件允许连接。

换句话说,mysql默认不具有根密码集--您需要以根用户身份运行phpMyAdmin或通过sudo运行(出于安全原因这两者都是坏主意),或者您更改身份验证方法并重置根密码,如数字海洋教程所示。

请注意,除了同名之外,MySQL用户和系统用户也不一样。您可以有一个MySQL用户jdoe,并且在主机系统上没有这样的用户。因此,root是MySQL的根用户,而不是系统用户。

更改插件和密码的

步骤:

  1. 打开终端并运行sudo mysql -u root。您应该看到一个问候语和mysql>提示符。这是MySQL shell,它不同于命令行shell,因此这里只接受SQL语句。
  2. 输入以下序列的SQL查询: mysql>使用mysql读取表信息来完成表名和列名,您可以关闭此功能,以便更快地启动-A数据库更改的mysql>刷新权限;查询OK,0行受影响(0.00秒)的mysql>更新用户设置插件=‘mysql_mysql>_password’,authentication_string=PASSWORD('newpassword'),其中用户= 'root';查询确定,1行受影响,1个警告(0.00秒)匹配:1更改:1警告:1
  3. 退出并尝试登录: mysql>退出,Bye $ systemctl,重新启动mysql $ sudo -u根-p,输入密码:欢迎来到mysql监视器。您的MySQL连接id是5服务器版本: 5.7.21-1 (Debian)版权(c) 2000、2018、Oracleand/或其附属机构。版权所有。甲骨文是甲骨文公司和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。键入“help;”或“\h”以表示帮助。键入'\c‘以清除当前输入语句。mysql>

如果一切顺利,您应该能够通过新密码从phpMyAdmin登录。如果出了问题,请尝试在没有权限检查的情况下重新启动服务器(这是步骤num )。3“数字海洋教程”)。对于其他问题,可以在这里或在数据库管理员-堆栈交换上提出另一个问题

票数 16
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1105970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档