mysql 密码忘记求助!!
┌──(root㉿kaili24-2)-[~]└─# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
遇到MySQL密码忘记且出现连接错误的问题,需分两步解决:
### 第一步:修复MySQL服务未启动的问题
出现 `ERROR 2002` 通常是因为MySQL服务未运行。请执行:
# 检查服务状态
systemctl status mysql
# 如果未运行,启动服务
systemctl start mysql
# 设置开机自启(可选)
systemctl enable mysql
### 第二步:重置root密码
若服务已运行但密码错误,按以下步骤重置密码:
1. **停止MySQL服务**
systemctl stop mysql
2. **跳过权限验证启动MySQL**
mysqld_safe --skip-grant-tables &
3. **无密码登录MySQL**
mysql -u root
4. **执行密码重置命令**
在MySQL命令行中依次输入:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
EXIT;
5. **重启MySQL服务**
# 结束跳过权限的进程
mysqladmin -u root -p shutdown
# 输入刚设置的新密码
# 正常启动服务
systemctl start mysql
---
### 验证登录
mysql -u root -p
# 输入新密码
---
### 常见问题处理
1. 若 `mysqld_safe` 报错,尝试直接使用:
mysqld --skip-grant-tables --skip-networking &
2. 重置后仍无法登录,检查错误日志:
tail -n 50 /var/log/mysql/error.log
> 注意:操作全程需要root权限,密码设置需符合安全规范(8位以上含字母/数字/符号)。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2025-7-26 10:18
遇到MySQL密码忘记且出现连接错误的问题,需分两步解决:
### 第一步:修复MySQL服务未启动的问题
你好,按第一步操作下面提示,后续进行不了
┌──(root㉿kaili24-2)-[~]
└─# systemctl status mysql
× mysql.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql; disabled; preset: disabled)
Active: failed (Result: exit-code) since Sat 2025-07-26 15:13:52 CST; 2min 57s ago
Docs: man:systemd-sysv-generator(8)
Process: 615040 ExecStart=/etc/init.d/mysql start (code=exited, status=1/FAILURE)
CPU: 4.390s
7月 26 15:13:52 kaili24-2 /etc/init.d/mysql: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc>
7月 26 15:13:52 kaili24-2 /etc/init.d/mysql:
7月 26 15:13:52 kaili24-2 systemd: mysql.service: Control process exited, code=exited, status=1/FAILURE
7月 26 15:13:52 kaili24-2 mysql:. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!
7月 26 15:13:52 kaili24-2 /etc/init.d/mysql: error: 'Can't connect to local MySQL server through socket '/va>
7月 26 15:13:52 kaili24-2 systemd: mysql.service: Failed with result 'exit-code'.
7月 26 15:13:52 kaili24-2 /etc/init.d/mysql: Check that mysqld is running and that the socket: '/var/run/mys>
7月 26 15:13:52 kaili24-2 systemd: Failed to start mysql.service - LSB: Start and stop the mysql database server >
7月 26 15:13:52 kaili24-2 /etc/init.d/mysql:
7月 26 15:13:52 kaili24-2 systemd: mysql.service: Consumed 4.390s CPU time, 1.9M memory peak, 0B memory swap peak.
lines 1-17/17 (END)
┌──(root㉿kaili24-2)-[~]
└─# systemctl start mysql
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xeu mysql.service" for details.
wuming323 发表于 2025-07-27 08:45
FishC 发表于 2025-7-26 10:18
遇到MySQL密码忘记且 ...
从错误信息看,MySQL服务启动失败。请按以下步骤操作:
### 第一步:修复服务启动问题
1. **检查数据目录权限**
MySQL需要正确的目录权限:
chown -R mysql:mysql /var/lib/mysql
chmod -R 755 /var/lib/mysql
2. **清理残留进程和sock文件**
pkill -9 mysqld
rm -f /var/run/mysqld/mysqld.sock
3. **强制重建系统表**
mysqld --initialize --user=mysql --console
注意:屏幕输出的最后一行会有临时密码(格式:),务必记录!
4. **启动服务**
systemctl start mysql
---
### 第二步:用临时密码登录并重置
1. **使用临时密码登录**
mysql -u root -p
# 粘贴记录的临时密码
2. **修改root密码**
在MySQL命令行中执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
EXIT;
---
### 关键点说明
1. 如果mysqld --initialize报错,检查磁盘空间:
df -h /var/lib/mysql
2. 查看详细错误日志:
tail -n 100 /var/log/mysql/error.log
3. Kali Linux可能需要额外操作:
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
> 注意:新密码需包含大小写字母+数字+符号(如`FishC_2024!`),操作全程需要root权限。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]