> 技术文档 > 备份数据库内容报错mysqldump: Got error: 1045: Access denied for user ‘root‘@‘localhost‘ (using password: NO)_mysqldump 1045

备份数据库内容报错mysqldump: Got error: 1045: Access denied for user ‘root‘@‘localhost‘ (using password: NO)_mysqldump 1045


备份数据库内容报错mysqldump: Got error: 1045: Access denied for user ‘root’@‘localhost’ (using password: NO) when trying to connect

D:\\soft\\mysql\\bin>mysqldump -u root --all-databases > \"D:\\backup\\full_backup.sql
mysqldump: Got error: 1045: Access denied for user ‘root’@‘localhost’ (using password: NO) when trying to connect

这个错误表明 mysqldump 命令无法连接到 MySQL 服务器,具体原因是您尝试用 root 用户无密码登录,但 MySQL 服务器实际设置了密码保护。

错误解析:

Access denied for user \'root\'@\'localhost\' (using password: NO)
错误部分 含义 Access denied 访问被拒绝 user \'root\'@\'localhost\' 尝试用 root 账号从本机登录 (using password: NO) 关键原因:命令中没有提供密码参数,尝试无密码登录

🔧 解决方案:

在命令中加入 -p 参数(会提示输入密码):

:: 正确的命令格式(在-p后面回车后输入密码)mysqldump -u root -p --all-databases > \"D:\\backup\\full_backup.sql\"
具体操作步骤:
  1. 执行修改后的命令

备份数据库内容报错mysqldump: Got error: 1045: Access denied for user ‘root‘@‘localhost‘ (using password: NO)_mysqldump 1045

  1. 看到 Enter password: 提示时输入 root 密码(输入时不会显示字符)备份数据库内容报错mysqldump: Got error: 1045: Access denied for user ‘root‘@‘localhost‘ (using password: NO)_mysqldump 1045

  2. 按回车开始备份(成功不会有提示)

备份数据库内容报错mysqldump: Got error: 1045: Access denied for user ‘root‘@‘localhost‘ (using password: NO)_mysqldump 1045

  • 在你备份的路径下面会生成full_backup.sql文件

备份数据库内容报错mysqldump: Got error: 1045: Access denied for user ‘root‘@‘localhost‘ (using password: NO)_mysqldump 1045

常见问题排查:

  1. 密码正确但依然拒绝访问

    :: 使用双引号包裹可能含特殊字符的密码mysqldump -u root -p\"特殊字符密码\" --all-databases > backup.sql
  2. 忘记 root 密码

    :: 停止MySQL服务net stop mysql:: 跳过权限检查启动mysqld --skip-grant-tables:::: 另开一个CMD窗口 ::::mysql -uroot

    在 MySQL 中重置密码:

    USE mysql;UPDATE user SET authentication_string=PASSWORD(\'新密码\') WHERE User=\'root\';FLUSH PRIVILEGES;EXIT;
  3. 账户已被锁定(MySQL 8.0+):

    ALTER USER \'root\'@\'localhost\' ACCOUNT UNLOCK;

关键注意事项:

  1. 密码安全原则

    • 强烈不建议 -p密码 直接暴露密码(会被记录在命令历史中)
    • 避免使用特殊字符 !@#$% 作为结束符号
  2. 目录权限问题

    :: 确保备份目录有写入权限icacls \"D:\\backup\" /grant Everyone:(OI)(CI)F
  3. 系统环境变量未配置

    :: 如果提示 \'mysqldump\' 不是命令cd /d D:\\soft\\mysql\\bin

推荐备选方案: