MySQL密码修改限制通常出现在安装后默认配置中,尤其是某些Linux发行版或集成环境(如WAMP、XAMPP)会设置临时密码或禁止远程修改。解除限制并成功修改密码需按步骤操作,以下是具体方法。
1. 停止MySQL服务
要修改密码,先停止正在运行的MySQL服务,避免冲突。
Linux系统:执行命令sudo systemctl stop mysql或
sudo service mysql stopWindows系统:打开“服务”管理器,找到 MySQL 服务,右键选择“停止”;或使用命令
net stop mysql
2. 跳过权限验证启动MySQL
以跳过权限表的方式启动MySQL,允许无需密码登录。
在终端或命令行中进入MySQL的bin目录,例如:/usr/local/mysql/bin或
C:\xampp\mysql\bin执行以下命令启动MySQL(不加载权限检查):
mysqld --skip-grant-tables --shared-memory保持该窗口运行,另开一个终端进行后续操作
3. 登录MySQL并修改密码
此时可无密码登录MySQL,直接进入修改密码流程。
新开终端,输入:mysql -u root -p,回车后直接进入MySQL命令行 执行以下命令切换到系统数据库:
use mysql;根据MySQL版本不同,修改密码方式略有差异: MySQL 5.7及以上版本:
UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root';
MySQL 8.0+ 版本注意:不再使用 PASSWORD() 函数,应使用:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';若需修改所有主机访问权限的用户,也可更新
'root'@'%'刷新权限使更改生效:
FLUSH PRIVILEGES;
4. 重启MySQL服务
完成密码修改后,正常重启MySQL服务。
先关闭之前用--skip-grant-tables启动的进程(Ctrl+C) 正常启动MySQL服务: Linux:
sudo systemctl start mysqlWindows:
net start mysql或通过服务管理器启动 使用新密码登录测试:
mysql -u root -p
基本上就这些。关键是跳过权限表登录后,用正确的SQL语句更新密码字段,并注意版本差异。操作完成后记得关闭调试模式,避免安全风险。整个过程不复杂但容易忽略版本语法区别。
