使用Adminer修改数据库密码后无法登录,如何重置Adminer数据库密码?
解决Adminer修改数据库密码后无法登录的重置方案
嘿,先理清个关键点:Adminer本身没有独立的登录密码——你登录Adminer用的就是数据库自身的账号和密码。你改完数据库密码后登不上,大概率是改密码时输错了、加密方式不匹配,或者干脆忘了新密码。下面针对主流数据库给出具体重置步骤:
一、MySQL/MariaDB 用户密码重置
如果你的数据库是MySQL或MariaDB,按以下步骤来:
先停掉数据库服务
不同系统的命令不一样:- Linux(systemd):
sudo systemctl stop mysql(如果是MariaDB就换成mariadb) - Windows:要么打开服务管理器找到MySQL/MariaDB服务停止,要么用命令行敲
net stop MySQL
- Linux(systemd):
跳过权限验证启动数据库
启动时加个参数跳过权限校验,这样不用密码就能进数据库:- Linux:
sudo mysqld_safe --skip-grant-tables & - Windows:找到MySQL安装目录的
bin文件夹,在命令行进入该目录后执行mysqld --skip-grant-tables
- Linux:
无密码登录数据库
新开一个终端/命令行窗口,直接敲mysql就能进入数据库命令行,不用加任何参数。重置目标用户密码
先切换到系统库:USE mysql;
然后根据你的数据库版本执行重置命令,记得把your_username换成你用Adminer登录的数据库用户名,new_password换成你要设的新密码:- 针对MySQL 5.7+ / MariaDB 10.1+:
如果这条命令报错(比如提示用户不存在),就用旧版的更新语句:ALTER USER 'your_username'@'localhost' IDENTIFIED BY 'new_password';UPDATE user SET authentication_string = PASSWORD('new_password') WHERE User = 'your_username' AND Host = 'localhost'; - 执行完一定要刷新权限:
FLUSH PRIVILEGES;
- 针对MySQL 5.7+ / MariaDB 10.1+:
重启服务测试
退出数据库命令行,关掉刚才跳过权限的数据库进程,再正常启动数据库服务,之后用新密码去Adminer登录试试。
二、PostgreSQL 用户密码重置
如果是PostgreSQL数据库,步骤更简单:
切换到postgres超级用户
PostgreSQL默认有个postgres超级用户,得用它来操作:- Linux:
sudo su - postgres - Windows:打开命令行进入PostgreSQL的
bin目录,执行psql -U postgres
- Linux:
重置目标用户密码
进入psql命令行后,执行这条语句,替换your_username和new_password:ALTER USER your_username WITH PASSWORD 'new_password';输完敲
\q退出psql就行。测试登录
直接用新密码在Adminer里连接PostgreSQL数据库就可以了。
三、额外注意事项
- 如果你是远程连接数据库,要确认用户的
Host字段不是localhost(比如是%允许所有远程IP),重置密码时要对应正确的Host值,不然还是登不上。 - 重置完密码后,在Adminer登录界面要仔细核对数据库主机、用户名、新密码,别填错参数。
- 极少数情况下,如果你的Adminer配置文件里硬编码了旧密码(Adminer默认不会这么做,都是每次手动输入),那你得找到
adminer.php里的配置项,把密码改成新的。
内容的提问来源于stack exchange,提问作者Mourin Bably
相关产品推荐
相关产品推荐

