用户没有密码的情况下如何登录MySQL shell?

用户没有密码的情况下如何登录MySQL shell?

我收到此错误:

root@sys3026:/home/sys3026# mysql --user=root --password    
Enter password:     
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

有谁能帮帮我吗?提前谢谢了。

答案1

当 MySQL 用户配置为使用auth_socket(而不是mysql_native_password)时,就像 Ubuntu 18.04 中的默认设置一样,您可以按照以下方式以 root 身份登录(例如):

sudo mysql -u'root'

要不就:

sudo mysql

参考:

答案2

如果您的数据库没有密码,则无需输入该--password参数。

$ mysql --user=root

参考:

答案3

如果您忘记了密码或无法登录,您可以随时在“安全模式”下运行 mysql。这样您就可以在没有任何密码限制的情况下访问它 - 如果出现问题,可以更改 root 密码或调整其他内容。

systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &

现在您可以无需密码访问 mysql 服务器。

mysql -uroot

在mysql shell中给root用户添加新密码

use mysql;
update user set password=PASSWORD("newpassword") where User='root';
flush privileges;

现在再次以正常模式重新启动它,它将使用新密码运行。

systemctl stop mysql
systemctl start mysql

答案4

sudo mysql -e "CREATE USER $USER"无需进一步登录即可sudo

您还可以为自己创建一个用户,而不设置密码:

sudo mysql -e "CREATE USER $USER"

从现在开始你可以直接使用以下方式登录:

mysql

sudo mysql这与为什么起作用的原理相同,root如上文所述https://askubuntu.com/a/1129495/52975:如果没有设置密码,它似乎会自动尝试通过 Linux 用户名进行身份验证。

在 Ubuntu 20.10 上测试。

相关内容