P粉3121957002023-08-24 15:59:57
唯一对我有用的方法是所描述的方法这里(我运行的是 ubuntu 14.04)。为了清楚起见,我遵循以下步骤:
sudo vim /etc/mysql/my.cnf
在末尾添加以下行:
[mysqld] skip-grant-tables
sudo服务mysql重启
mysql -u root
使用mysql
select * from mysql.user where user = 'root';
- 看顶部判断密码列是否被调用
密码或authentication_string
UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';
- 使用正确的密码列以上
刷新权限;
退出
sudo vim /etc/mysql/my.cnf
如果您想保持安全标准,请删除第 2 步中添加的行。
sudo服务mysql重启
供参考:https://dev.mysql.com /doc/refman/5.7/en/resetting-permissions.html
P粉7574324912023-08-24 11:49:06
在 Ubuntu Linux 上设置/更改/重置 MySQL root 密码。在终端中输入以下行。
sudo /etc/init.d/mysql stop
/var/run/mysqld
不存在,则必须首先创建它:sudo mkdir -v /var/run/ mysqld && sudo chown mysql /var/run/mysqld
mysqld
配置:sudo mysqld --skip-grant-tables &
mysql -u root mysql
YOURNEWPASSWORD
替换为您的新密码:对于 MySQL <8.0
UPDATE mysql.user SET Password = PASSWORD('YOURNEWPASSWORD') WHERE User = 'root'; FLUSH PRIVILEGES;
如果您的 MySQL 使用新的身份验证插件,则需要在刷新权限之前使用:update user set plugin="mysql_native_password" where User='root';
。
注意:此方法并不被视为重置密码的最安全方法,但它确实有效。
对于 MySQL >= 8.0
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD';
FLUSH PRIVILEGES;
正如@lambart的评论中所指出的,您可能需要终止您启动的临时无密码mysql进程,即sudo Killall -9 mysqld
,然后启动正常的守护进程:sudo服务mysql启动
参考文献: