70

这是一个棘手的问题,我有以下输出:

mysqldump:出现错误:1045:尝试连接时用户'root'@'localhost'的访问被拒绝(使用密码:YES)

尝试mysqldump在 Windows XP 上导出我的数据库时。用户名是 root,密码正确且仅包含字母数字字符。我尝试了不同的情况,带/不带引号,指定使用-u-p,指定使用--user=--password=其他指定用户/密码等的方法,指定主机(它都是本地的),甚至使用指定数据库--databases而不仅仅是空白。使用密码时错误总是相同的,并且除了没有密码时的“NO”消息之外总是相同的。我尝试了许多通过搜索找到的修复程序,但均未成功。一项修复建议检查 mysql.conf,但 Windows 版本似乎没有。凭据(实际上是命令行参数)与 mysql.exe 完美配合 - 这个问题似乎只影响 mysqldump.exe。

4

29 回答 29

75

这对我有用

mysqldump -u root -p mydbscheme > mydbscheme_dump.sql

发出命令后,它要求输入密码:

Enter password:

输入密码将生成转储文件。

于 2014-01-23T08:12:15.570 回答
38

如果您能够使用 mysql 连接到数据库,但 mysqldump 出现错误,那么问题可能是您缺乏锁定表的权限。

在这种情况下尝试 --single-transaction 选项。

mysqldump -h database.example.com -u mydbuser -p mydatabase --single-transaction  > /home/mylinuxuser/mydatabase.sql
于 2014-07-11T16:15:02.310 回答
21

使用 -p 选项时尝试删除空格。这适用于我的 OSX 和 Linux mysqldump:

mysqldump -u user -ppassword ...
于 2015-11-12T18:48:03.243 回答
20

被拒绝的访问可能是对 Windows 文件系统而不是对 MySQL 数据库;尝试将输出文件重定向到允许您的帐户创建文件的位置。

于 2014-06-20T18:12:54.837 回答
14

您需要在包含 shell 元字符的密码中添加反斜杠,例如 !#'"`&;

于 2015-02-17T13:47:03.100 回答
10

Don't enter the password with command. Just enter,

mysqldump -u <username> -p <db_name> > <backup_file>.sql

Then you will get a prompt to enter password.

于 2014-07-02T07:24:25.273 回答
8

Administrator当我在模式下运行命令提示符时,Access dined 问题解决了。

如果有任何单击按钮,Start-> All Programs -> Accessories请右键单击clickcCommand PromptRun as..选择选项中选择The Following User选择administrator username输入密码。OK

示例 1:使用命令提示符在 mysql 中备份整个数据库。

在 Windows 7 和 8 中

C:\Program Files <x86>>\MySQL\MySQL Server 5.5\bin>mysqldump test -u root -p >testDB.sql
Enter Password: *********

在 Windows XP 中

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldump test -u root -p >testDB.sql
Enter Password: *********

它要求输入密码的凭据输入密码,然后单击 Enter 按钮。

示例 2:使用命令提示符在 mysql 中进行特定表备份/转储。

在 Windows 7 和 8 中

C:\Program Files <x86>>\MySQL\MySQL Server 5.5\bin>mysqldump test -u root -p images>testDB_Images.sql
Enter Password: *********

在 Windows XP 中

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldump test -u root -p images>testDB_Images.sql
Enter Password: *********

转储文件将在文件夹下创建

在 windows xp 中

C:\Program Files\MySQL\MySQL Server 5.5\bin

在 Windows 7 和 8 中

C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin

注意:在命令提示符下运行时检查 Windows 7、8 中的 MySQL 安装文件夹。如果MySQLWorkbench是 32 位版本,则它安装在Program Files (x86)文件夹 other wiseProgram Files文件夹中。

于 2014-03-25T13:01:39.063 回答
7

GRANT特权:

GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'%' IDENTIFIED BY 'password';
于 2013-11-19T13:16:49.017 回答
6

mysqldump -h 主机名 -u 用户名 -P 端口 -B 数据库 --no-create-info -p > output.sql

我认为您应该指定参数

于 2014-12-04T07:00:09.117 回答
4

没有-uand-p为我工作(当我以 root 身份登录时):

mysqldump --opt mydbname > mydbname.sql
于 2016-03-01T01:26:51.310 回答
3

将 -p 作为第一个选项在 Windows Server 2012R2 上对我有用(在 cmd.exe 中作为管理员)。

mysqldump.exe –p --user=root  --databases DBname --result-file=C:\DBname.sql
于 2020-11-20T16:10:23.057 回答
2

我遇到了同样的问题,持续了 30 分钟!我发现我使用的是_p而不是-p,终端字体让我很困惑!

于 2020-10-12T21:27:30.580 回答
1

mysqldump -u (user) -p(passwd) -h (host_or_IP) database_to_backup > backup_file.sql

例子:

mysqldump -u god -pheaven -h 10.0.10.10 记帐>accounting_20141209.sql

这将为服务器 10.0.10.10 上的会计数据库创建 sql 备份文件。当 localhost 不在配置中时,有时会看到您的错误。指定服务器的 ip 可能会有所帮助。

于 2014-12-09T18:45:31.557 回答
1

我必须删除密码标志后的单个刻度:

--password=mypassword

不是

--password='mypassword'
于 2015-03-03T21:32:33.077 回答
1

我在全新安装 MySQL 5.6.16 后遇到了这个问题。

奇怪的是,它可以在没有指定或标记密码的情况下工作:

mysqldump -u root myschema mytable > dump.sql

于 2014-02-17T21:51:54.797 回答
1

就我而言,我可以使用mysql.exe但不能正确访问mysqldump.exe.

问题是我的连接端口不是默认端口(3306),我不得不让 mysqldump 端口与(-P3307)一起工作

mysqldump -u root -p -P3307 my_database > /path/backup_database

于 2019-11-13T15:03:00.660 回答
0

在过去,当我从 MS Word 文件中复制 mysqldump 语句后,我也遇到了同样的问题。

但是当直接输入语句时,一切正常。

在十六进制编辑器中,不工作语句的“-”由 unicode char e2 80 93 ( http://www.fileformat.info/info/unicode/char/2013/index.htm )表示

在排序中,直接输入密码并检查复制粘贴代码,因为 uni-code(或其他编码)字符串可能会导致问题。

于 2014-07-02T04:54:31.507 回答
0

过去 2 天我遇到了同样的错误。尝试了一堆东西。没有任何效果。
但这确实有效:
创建另一个用户。授予它一切。
mysqldump -u new_user db_name > db_name.sql //没有错误

于 2015-06-15T19:01:31.187 回答
0

当 mysql 帐户REQUIRE SSL开启时,Mysql 使用正确的凭据回复 Access Denied

ssl_ca文件(至少)必须在连接参数中提供。

可能需要额外的 ssl 参数,并在此处记录:http: //dev.mysql.com/doc/refman/5.7/en/secure-connection-options.html


还张贴在这里https://stackoverflow.com/a/39626932/1695680

于 2016-09-21T21:36:41.573 回答
0

如果要创建 mysql 数据转储,可以使用 mysqldump 命令。以下命令将在运行此命令的同一位置创建一个名为 xxx.sql 的 sql 文件。xxx.sql 将拥有在任何其他 mysql 数据库中复制完全相同的数据库模式所需的所有 sql。

命令是:mysqldump -u root -p密码--databases要导入的数据库名称> xxx.sql

这里 root 是 mysql root 用户,password 是这个 root 用户的密码。

示例:如果 root 用户密码是 hello,要导出的数据库名称是 regdb,xxx.sql 是要导出此 regdb 的文件,命令如下:

mysqldump -u root -phello --databases regdb > xxx.sql

注意:xxx.sql 是这个 db 将被转储到的文件名。

于 2020-02-03T15:34:19.507 回答
0

当我在没有写入权限的目录中运行命令时,我遇到了同样的错误。

通过在目录中创建一个空文件来测试您的访问权限,并查看您是否收到错误。

这是我的错误

mysqldump  -u root librenms -p > librenms.sql
-bash: librenms.sql: Permission denied

我更改为我的主目录,然后它工作了。

cd ~ 
mysqldump  -u root librenms -p > librenms.sql
Enter password:

在 Windows 上执行等效操作,它可能会解决您的问题!

于 2022-02-27T17:54:10.957 回答
0

对我来说,当我省略密码时它起作用了。

所以mysqldump -u user dbname > dump.sql

于 2019-09-11T09:51:01.107 回答
0

我发现一个正在运行的 apache 进程访问导致此错误的 MYSQL。所以我建议确保所有可能与数据库交互的进程都事先关闭。

于 2015-10-23T14:39:08.713 回答
0

我有同样的错误。仅在从我的正常工作 PC 移动到不同位置的 PC 后发生。

我必须在我的主机站点的CPanel中将我的公共 IP ho 地址添加到远程 MySQL

于 2020-12-31T06:35:29.817 回答
0

这个解决方案可能是最后一个尝试/最不可能成为罪魁祸首的解决方案之一,但这是我的问题......

我的问题是我试图转储到的目录需要管理员权限才能写入,这就是导致mysqldump命令返回的原因"Access Denied"

我将转储文件路径设置为我的桌面目录,然后它工作了。

这是在 Windows 上。

于 2020-05-29T21:04:13.937 回答
0

我遇到的问题是,有些视图的“DEFINER”错误,即定义视图的用户。视图中使用的 DEFINER 已在一段时间前被删除,因为它是“某个随机工作站的根”。

通过运行检查是否有问题:

USE information_schema; 
SELECT DEFINER, SECURITY_TYPE FROM views;

我使用ALTER VIEW修改了 DEFINER(实际上,将 DEFINER 设置为root@localhost并将 SQL SECURITY 值设置为,INVOKER以便使用调用用户而不是定义用户的权限执行视图,这实际上更有意义)。

这很棘手,因为您必须从 构造适当的ALTER VIEW语句information_schema.views,因此请检查:

于 2018-03-12T11:40:50.417 回答
0

对于 MAMP PRO 用户(或任何 mysql 位于奇怪位置的用户),准备好从 boonies 中指定 mysql 完整路径,并指定要转储文件的用户本地文件夹的完整路径,否则您将获得“权限被拒绝错误”..

经过 3 小时的研究,以下为我工作:

/Applications/MAMP/Library/bin/mysqldump  -u root -proot YOUR_DB > /Users/YOUR_USER/yourdump2.sql
于 2018-11-25T04:30:03.063 回答
0

尝试了上述大部分内容,但没有任何乐趣。查看我的密码,其中的字符可能会使解析器感到困惑。我将密码用引号括起来,错误已解决。-p"a:@#$%^&+6>&FAEH"

使用 8.0

于 2019-12-07T14:46:40.133 回答
-2

转到开始->所有程序->附件右键单击命令提示符单击以管理员身份运行

在命令提示符下使用 CD 命令转到 MySQL bin 文件夹并运行以下命令

mysqldump --user root --password=root --all-databases>dumps.sql

它将在 bin 文件夹本身中创建 dumps.sql 文件。

于 2015-03-14T04:24:00.827 回答