如何修改mysql root密码
- 2024-11-04 08:43:00
- admin 原创
- 47
问题描述:
我在 redhat linux 上安装了 MySQL server 5。我无法以 root 身份登录,因此无法更改 root 密码。
mysql -u root -p
Enter password: <blank>
ERROR 1045 (28000): Access denied for user 'root'@'localhost'
(using password: NO)
当我尝试设置如下内容时:
mysqladmin -u root password 'newpass'
我收到一个错误:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost'
(using password: NO)'
好像设置了root密码。
我也尝试过使用(此处描述)重置密码
/sbin/service mysqld start --skip-grant-tables
然后制作:
mysql> UPDATE mysql.user SET Password=PASSWORD('newpass')
-> WHERE User='root';
ERROR 1142 (42000): UPDATE command denied to user ''@'localhost' for table 'user'
我甚至卸载了 mysql-server(使用 yum)然后重新安装它,但这没有帮助。
如何强制重置 root 密码?
解决方案 1:
一个选项是保存UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root';
到文件中,然后手动启动mysqld
。--init-file=FILENAME
服务器启动后,它会重置您的密码,然后您就能登录了。此后,您应该关闭服务器并正常启动它。
解决方案 2:
有点晚了,但我在安装 Raspberry Pi 时遇到了同样的问题,发现需要提升权限。在密码更改前面添加 sudo 可以让它正常工作。
sudo mysqladmin -u root password 'newpass'
随后是提升的 SQL 访问权限
sudo mysql -u root -p
如果任何一个不是以 sudo 身份运行,它将会失败。
解决方案 3:
默认情况下,root用户密码为空字符串。
并(using password: NO)
说没有密码。
您是否尝试从其他系统登录?我想您只能以 root 用户身份在本地登录。
解决方案 4:
我删除了 MySQL 安装并删除了数据文件,然后重新安装它。
然后我就可以设置 root 密码了。一旦你将 root 密码设置为某个值,如果你不知道密码,mysqladmin 将不会让你重置它。
要重置它,您必须拥有 mysqld 执行方式的所有权,并向其提供一个初始化文件来更改 root 密码:
https://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
解决方案 5:
这对我在 Windows 上使用 MySQL Server 5.6 很有帮助。请确保将路径更改mysqld
为指向已安装 MySql Server 的位置,对我来说,它是"C:Program FilesmysqlMySQL Server 5.6inmysqld.exe"
:
以管理员身份登录您的系统。
如果 MySQL 服务器正在运行,请停止它。对于作为 Windows 服务运行的服务器,请转到服务管理器:从“开始”菜单中,选择“控制面板”,然后选择“管理工具”,然后选择“服务”。在列表中找到 MySQL 服务并停止它。
如果您的服务器没有作为服务运行,您可能需要使用任务管理器强制它停止。
创建包含以下语句的文本文件。将密码替换为您要使用的密码。
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
将 UPDATE 和 FLUSH 语句分别写在一行上。UPDATE 语句会重置所有 root 帐户的密码,而 FLUSH 语句会通知服务器将授权表重新加载到内存中,以便它能够注意到密码更改。
保存文件。在本例中,文件将被命名为
C:mysql-init.txt
。打开控制台窗口以进入命令提示符:从开始菜单中,选择运行,然后输入 cmd 作为要运行的命令。
使用特殊的 --init-file 选项启动 MySQL 服务器(请注意,选项值中的反斜杠要加倍):
C:> C:mysqlinmysqld --init-file=C:\\mysql-init.txt
如果您将 MySQL 安装到 C:\mysql 以外的位置,请相应地调整命令。
服务器在启动时执行--init-file选项指定的文件的内容,更改每个root帐户的密码。
如果您希望服务器输出出现在控制台窗口而不是日志文件中,您还可以在命令中添加 --console 选项。
如果你使用[MySQL 安装帮助]安装了 MySQL,你可能需要指定--defaults-file 选项:
C:> "C:Program FilesMySQLMySQL Server 5.5inmysqld.exe"
--defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.5\\my.ini"
--init-file=C:\\mysql-init.txt
可以使用服务管理器找到适当的 --defaults-file 设置:从开始菜单中,选择控制面板,然后选择管理工具,然后选择服务。在列表中找到 MySQL 服务,右键单击它,然后选择属性选项。可执行文件路径字段包含 --defaults-file 设置。
服务器成功启动后,删除C:\mysql-init.txt。
http://docs.oracle.com/cd/E17952_01/refman-5.5-en/resetting-permissions.html
解决方案 6:
可能有点晚了,但这就是我所做的:
创建文件 resetpass.sh,内容如下:
UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='root';
# mysqld_safe --init-file=resetpass.sh
# service mysqld start --skip-grant-tables
# mysql -u root -p
输入通行证
mysql > change root pass ; flush privs;
辞职
# restart mysql service
我使用的MySQL版本是centos6下的5.1.73
解决方案 7:
尝试这样做:
mysql -u root
进而:
mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
对我来说很好用!
解决方案 8:
从命令中删除 -p。-p 强制提示输入密码。
使用 :mysql -u root
这将解决您的问题。
解决方案 9:
根据文档,在 MySQL 5.7 中输入了临时密码/var/log/mysqld
,但在 5.6 中显然不是这种情况。
在 RHEL 6.7 上安装 MySQL 5.6 版本后,最终发现安装时设置的临时 root 密码放在了文件中/root/.mysql_secret
。
解决方案 10:
打开 mysql
现在输入以下命令:
use mysql;
update user set PASSWORD=password("updated password") where User='root';
flush privileges;
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件