![mysql root 密码为空](https://linux22.com/image/769807/mysql%20root%20%E5%AF%86%E7%A0%81%E4%B8%BA%E7%A9%BA.png)
我尝试将装有 MySQL 的磁盘更换为更大更快的磁盘,然后安装 mysql。在mysql-server
ubuntu 上安装后,运行时select user,host,authentication_string from user where user='root';
一片authentication_string
空白。
我设置了密码,但登录 root 的唯一方法是使用 sudo 运行 MySQL 命令,如果我尝试输入密码,则运行mysql -u root -p
它不起作用。我还尝试过在登录时将密码留空,但没有任何效果。任何帮助都非常感谢。
系统信息:pop!_os amd64 20.04 (类似 ubuntu)
答案1
一些安装默认启用 MySQL(和 MariaDB)套接字认证插入。
root
无需使用密码验证,只需在操作系统上以身份登录即可(直接以身份登录root
或使用sudo mysql
提升权限为 root)以身份登录root
MySQL 服务器。您也可以对普通用户使用相同的机制,即当我以身份登录bob
Linux 服务器并且bob@llocalhost
MySQL 中存在帐户时,我可以直接登录而无需额外的验证。
删除套接字身份验证以 root 身份登录
$ sudo mysql -u root
mysql> use mysql;
设置 root 密码,而不是套接字身份验证
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
通过刷新所有缓存的凭据来激活这些更改
mysql> flush privileges;
mysql -u root -p
然后您可以使用您指定的新密码登录。