P粉3065239692023-08-21 00:54:32
对我有效的唯一方法是在这里描述的方法(我正在运行ubuntu 14.04)。为了清晰起见,这是我遵循的步骤:
sudo vim /etc/mysql/my.cnf
在末尾添加以下行:
[mysqld] skip-grant-tables
sudo service mysql restart
mysql -u root
use mysql
select * from mysql.user where user = 'root';
- 查看顶部以确定密码列是称为password还是authentication_string
UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';
- 使用上面正确的密码列
FLUSH PRIVILEGES;
exit
sudo vim /etc/mysql/my.cnf
如果要保持安全标准,请删除步骤2中添加的行。
sudo service mysql restart
参考:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
P粉1357999492023-08-21 00:52:22
在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 service mysql start
参考资料: