【问题标题】:Which username and password does mysqldump expect?mysqldump 期望哪个用户名和密码?
【发布时间】:2021-09-08 13:00:24
【问题描述】:

我正在尝试制作我网站数据库的副本,以便我可以下载它并将其导入 wamp 以进行本地测试。

这是我在 Putty 中输入的内容:

mysqldump -u my_database_username -p dataname_db.sql --single-transaction --quick --lock-tables=false > dataname_db_local-$(date +%F).sql && gzip dataname_db_local.sql

无论我使用什么用户和密码组合,我都会收到此错误

Got error: 1044: "Access denied for user to database when selecting the database

它希望 MySQL 用户对该数据库拥有完全权限,对吗?即与我在 php 中的新 MySQLi() 命令中用于连接数据库的凭据相同,对吗?

我读到有时不允许使用带有特殊字符的密码,所以我为该数据库创建了一个新用户,完全权限,使用纯字母数字通行证,但仍然不被接受。

然后我想它可能需要相同的用户名并传递我用来通过 Putty 连接到我的服务器的用户名,但这不起作用。 -u root 也没有使用服务器密码。

有人可以准确说明它想要哪个用户名吗?

谢谢

【问题讨论】:

  • 我不完全确定,但您是否在创建新用户后重新启动了服务或FLUSH PRIVILEGES

标签: mysql


【解决方案1】:

是的,你是对的,mysqldump 需要的 usernamepassword 与您在 php 中用于连接数据库的新 MySQLi() 命令完全相同。

确保您的帐户具有Lock_Table 权限。

如果还是不行,尝试把--single-transaction选项传给mysqldump:

mysqldump --single-transaction -u db_username -p DBNAME > backup.sql

注意有syntax的问题,你应该在mysqldump语句的最后选择你的数据库:

mysqldump [options] db_name [tbl_name ...] > filename.sql

参考:[1][2]

【讨论】:

  • 谢谢 NcXNaV。它仍然无法正常工作,但我发现了一些我多年前使用的代码,其中包含通行证(包括出于某种原因的反斜杠?),所以我对其进行了调整,并按照你的建议将数据库放在最后.用户具有在 phpmyadmin 中设置的选择、删除、更新、插入和锁定表权限。代码:mysqldump --single-transaction --quick --lock-tables=false -u database_username -p\mybigpasswordwithabackwardsslash database_databasename | gzip -9 > /home/whereIWantIt/database_databasename.sql.gz;它在漫长而令人沮丧的一天结束时奏效了,所以一切都很棒!再次感谢。
猜你喜欢
  • 1970-01-01
  • 2015-12-20
  • 1970-01-01
  • 2016-01-28
  • 2020-03-08
  • 2013-12-09
  • 1970-01-01
  • 2017-05-18
  • 2014-02-22
相关资源
最近更新 更多