鱼C论坛

 找回密码
 立即注册
查看: 84|回复: 3

[已解决]mysql 密码忘记求助!!

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
┌──(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)
最佳答案
6 天前
遇到MySQL密码忘记且出现连接错误的问题,需分两步解决:

### 第一步:修复MySQL服务未启动的问题
出现 `ERROR 2002` 通常是因为MySQL服务未运行。请执行:

  1. # 检查服务状态
  2. systemctl status mysql

  3. # 如果未运行,启动服务
  4. systemctl start mysql

  5. # 设置开机自启(可选)
  6. systemctl enable mysql
复制代码


### 第二步:重置root密码
若服务已运行但密码错误,按以下步骤重置密码:

1. **停止MySQL服务**  
  

  1.    systemctl stop mysql
  2.    
复制代码


2. **跳过权限验证启动MySQL**  
  

  1.    mysqld_safe --skip-grant-tables &
  2.    
复制代码


3. **无密码登录MySQL**  
  

  1.    mysql -u root
  2.    
复制代码


4. **执行密码重置命令**  
   在MySQL命令行中依次输入:
  

  1.    FLUSH PRIVILEGES;
  2.    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
  3.    EXIT;
  4.    
复制代码


5. **重启MySQL服务**  
  

  1.    # 结束跳过权限的进程
  2.    mysqladmin -u root -p shutdown
  3.    # 输入刚设置的新密码

  4.    # 正常启动服务
  5.    systemctl start mysql
  6.    
复制代码


---

### 验证登录

  1. mysql -u root -p
  2. # 输入新密码
复制代码


---

### 常见问题处理
1. 若 `mysqld_safe` 报错,尝试直接使用:
  

  1.    mysqld --skip-grant-tables --skip-networking &
  2.    
复制代码


2. 重置后仍无法登录,检查错误日志:
  

  1.    tail -n 50 /var/log/mysql/error.log
  2.    
复制代码


> 注意:操作全程需要root权限,密码设置需符合安全规范(8位以上含字母/数字/符号)。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层    本楼为最佳答案   
遇到MySQL密码忘记且出现连接错误的问题,需分两步解决:

### 第一步:修复MySQL服务未启动的问题
出现 `ERROR 2002` 通常是因为MySQL服务未运行。请执行:

  1. # 检查服务状态
  2. systemctl status mysql

  3. # 如果未运行,启动服务
  4. systemctl start mysql

  5. # 设置开机自启(可选)
  6. systemctl enable mysql
复制代码


### 第二步:重置root密码
若服务已运行但密码错误,按以下步骤重置密码:

1. **停止MySQL服务**  
  

  1.    systemctl stop mysql
  2.    
复制代码


2. **跳过权限验证启动MySQL**  
  

  1.    mysqld_safe --skip-grant-tables &
  2.    
复制代码


3. **无密码登录MySQL**  
  

  1.    mysql -u root
  2.    
复制代码


4. **执行密码重置命令**  
   在MySQL命令行中依次输入:
  

  1.    FLUSH PRIVILEGES;
  2.    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
  3.    EXIT;
  4.    
复制代码


5. **重启MySQL服务**  
  

  1.    # 结束跳过权限的进程
  2.    mysqladmin -u root -p shutdown
  3.    # 输入刚设置的新密码

  4.    # 正常启动服务
  5.    systemctl start mysql
  6.    
复制代码


---

### 验证登录

  1. mysql -u root -p
  2. # 输入新密码
复制代码


---

### 常见问题处理
1. 若 `mysqld_safe` 报错,尝试直接使用:
  

  1.    mysqld --skip-grant-tables --skip-networking &
  2.    
复制代码


2. 重置后仍无法登录,检查错误日志:
  

  1.    tail -n 50 /var/log/mysql/error.log
  2.    
复制代码


> 注意:操作全程需要root权限,密码设置需符合安全规范(8位以上含字母/数字/符号)。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
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[618106]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc>
7月 26 15:13:52 kaili24-2 /etc/init.d/mysql[618106]: [52B blob data]
7月 26 15:13:52 kaili24-2 systemd[1]: mysql.service: Control process exited, code=exited, status=1/FAILURE
7月 26 15:13:52 kaili24-2 mysql[615040]:  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!
7月 26 15:13:52 kaili24-2 /etc/init.d/mysql[618106]: error: 'Can't connect to local MySQL server through socket '/va>
7月 26 15:13:52 kaili24-2 systemd[1]: mysql.service: Failed with result 'exit-code'.
7月 26 15:13:52 kaili24-2 /etc/init.d/mysql[618106]: Check that mysqld is running and that the socket: '/var/run/mys>
7月 26 15:13:52 kaili24-2 systemd[1]: Failed to start mysql.service - LSB: Start and stop the mysql database server >
7月 26 15:13:52 kaili24-2 /etc/init.d/mysql[618106]:
7月 26 15:13:52 kaili24-2 systemd[1]: 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.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 5 天前 | 显示全部楼层
wuming323 发表于 2025-07-27 08:45
FishC 发表于 2025-7-26 10:18
遇到MySQL密码忘记且 ...


从错误信息看,MySQL服务启动失败。请按以下步骤操作:

### 第一步:修复服务启动问题
1. **检查数据目录权限**  
   MySQL需要正确的目录权限:

  1. chown -R mysql:mysql /var/lib/mysql
  2. chmod -R 755 /var/lib/mysql
复制代码


2. **清理残留进程和sock文件**  

  1. pkill -9 mysqld
  2. rm -f /var/run/mysqld/mysqld.sock
复制代码


3. **强制重建系统表**  

  1. mysqld --initialize --user=mysql --console
复制代码

注意:屏幕输出的最后一行会有临时密码(格式:[GENERATED ROOT PASSWORD: xxxxx]),务必记录!

4. **启动服务**  

  1. systemctl start mysql
复制代码


---

### 第二步:用临时密码登录并重置
1. **使用临时密码登录**  

  1. mysql -u root -p
  2. # 粘贴记录的临时密码
复制代码


2. **修改root密码**  
在MySQL命令行中执行:

  1. ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
  2. FLUSH PRIVILEGES;
  3. EXIT;
复制代码


---

### 关键点说明
1. 如果mysqld --initialize报错,检查磁盘空间:

  1. df -h /var/lib/mysql
复制代码


2. 查看详细错误日志:

  1. tail -n 100 /var/log/mysql/error.log
复制代码


3. Kali Linux可能需要额外操作:

  1. mkdir -p /var/run/mysqld
  2. chown mysql:mysql /var/run/mysqld
复制代码


> 注意:新密码需包含大小写字母+数字+符号(如`FishC_2024!`),操作全程需要root权限。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-1 14:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表