我收到此错误:
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 上测试。