wuming323 发表于 5 天前

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)

FishC 发表于 5 天前

遇到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 小助理,如未能正确解答您的问题,请继续追问。

wuming323 发表于 4 天前

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.

FishC 发表于 4 天前

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]
查看完整版本: mysql 密码忘记求助!!