1. Stop mysql:
sudo systemctl stop mysqld
2. Set the mySQL environment option
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Start mysql usig the options you just set
sudo systemctl start mysqld
4. Login as root
mysql -u root
5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
-> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
***Edit***
As mentioned my shokulei in the comments, for 5.7.6 and later, you should use
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Or you'll get a warning
6. Stop mysql
sudo systemctl stop mysqld
7. Unset the mySQL envitroment option so it starts normally next time
sudo systemctl unset-environment MYSQLD_OPTS
8. Start mysql normally:
sudo systemctl start mysqld
Try to login using your new password:
7. mysql -u root -p
步骤4.设置新密码 mysql> update user set authentication_string=PASSWORD("yourpassword") where User='root' ; 步骤5.从/etc/my.cnf文件中删除skip-grant-tables。 步骤6.重新启动mysql数据库
7条答案
按热度按时间093gszye1#
您使用的是什么版本的MySQL?我使用的是5.7.10,以root身份登录时也遇到了同样的问题
有两个问题:无法以
root
身份登录,也无法使用mysqld_safe
启动MySQL以重置root
密码。我不知道如何在安装过程中设置root密码,但下面介绍了如何重置root密码
编辑安装时的初始root密码可以通过运行
http://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html
1.现在使用
systemd
而不是mysqld_safe
来处理mySQL(这就是为什么您会得到-bash: mysqld_safe: command not found
错误-它没有安装)user
表结构已更改。因此,要重置root密码,您仍然使用
--skip-grant-tables
选项启动mySQL,并更新user
表,但操作方式已经改变。参考资料
就像http://dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html上说的,
备注
从MySQL 5.7.6开始,对于使用RPM分发版的MySQL安装,服务器的启动和关闭在多个Linux平台上由systemd管理。在这些平台上,不再安装mysqld_safe,因为它是不必要的。有关详细信息,请参见第2.5.10节“使用systemd管理MySQL服务器”。
它会将您带到http://dev.mysql.com/doc/refman/5.7/en/server-management-using-systemd.html,在页面底部提到了
systemctl set-environment MYSQLD_OPTS=
。密码重置命令位于http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html的底部
2lpgd9682#
我使用了上面Kevin Jones的建议,并给出了以下建议--跳过网络更改以获得更好的安全性:
然后,当我试图重置密码时,我收到了一个错误,但在谷歌上搜索其他地方时,我发现我可以继续前进。
在那一点上,我能够登录。
iyfamqjs3#
使用以下步骤重置密码。
重置MySql服务器根密码。
输出类似于-:
在重置mysql_secure_installation过程中使用上述密码。
您已经成功重置了MySql Server的root密码。使用以下命令检查mysql Server是否连接。
http://gotechnies.com/install-latest-mysql-5-7-rhelcentos-7/
pkwftd7m4#
对于CentOS 7和MariaDB 10.4,我成功地使用了以下命令:
tktrz96b5#
所有人,
这里有点扭曲与mysql-community-server 5.7我分享一些步骤,如何重置mysql5.7根密码或设置密码.它将工作centos7和RHEL 7以及.
步骤1.停止数据库
/etc/my.cnf
步骤2.修改
/etc/my.cnf
文件,添加“skip-grant-tables”步骤3.启动MySQL
service mysqld start
步骤4.选择mysql默认数据库
步骤4.设置新密码
mysql> update user set authentication_string=PASSWORD("yourpassword") where User='root'
;步骤5.从
/etc/my.cnf
文件中删除skip-grant-tables
。步骤6.重新启动mysql数据库
享受:)
pgpifvop6#
请使用以下命令停止所有服务MySQL/etc/init.d/mysqld stop之后使用此命令
mysqld_safe --跳过授权表
它可能工作正常
trnvg8h37#
对我来说这样工作:1.停止mysql:systemctl停止mysqld
1.设置mySQL环境选项systemctl set-environment MYSQLD_OPTS="--跳过-授予-表”
1.启动mysql使用您刚刚设置的选项systemctl start mysqld
1.以root身份登录mysql -u root
1.登录后我使用FLUSH PRIVILEGES;告诉服务器重新加载授权表,以便帐户管理语句正常工作。如果我不这样做,我会在尝试更新密码时收到以下错误:“在用户表中找不到任何匹配行”