mysqldump错误1045尽管密码正确,但拒绝访问

时间:2013-11-18 23:01:33

标签: mysql localhost access-denied mysql-error-1045 windows-xp-sp3

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

  

mysqldump:收到错误:1045:拒绝访问用户&root;' @' localhost' (尝试连接时使用密码:是)

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

28 个答案:

答案 0 :(得分:50)

这对我有用

mysqldump -u root -p mydbscheme > mydbscheme_dump.sql

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

Enter password:

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

答案 1 :(得分:25)

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

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

mysqldump -h database.example.com -u mydbuser -p mydatabase --single-transaction  > /home/mylinuxuser/mydatabase.sql

答案 2 :(得分:18)

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

答案 3 :(得分:10)

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

mysqldump -u user -ppassword ...

答案 4 :(得分:7)

放置GRANT权限:

GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'%' IDENTIFIED BY 'password';

答案 5 :(得分:6)

Administrator模式下运行命令提示符时,访问已解决的问题已解决。

转到Start-> All Programs -> Accessories右键点击Command Prompt点击Run 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)文件夹的其他明智Program Files文件夹中。

答案 6 :(得分:6)

请勿使用命令输入密码。只需输入,

mysqldump -u(用户名)-p(db_name)&gt; (backup_file)的.sql

然后您将收到输入密码的提示。

答案 7 :(得分:5)

mysqldump -h hostname -u username -P port -B database --no-create-info -p&gt; output.sql

我认为你应该指定args

答案 8 :(得分:5)

在没有-u-p的情况下为我工作(当我以root身份登录时):

mysqldump --opt mydbname > mydbname.sql

答案 9 :(得分:5)

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

答案 10 :(得分:1)

mysqldump -u(user)-p(passwd)-h(host_or_IP)database_to_backup&gt; backup_file.sql

示例:

mysqldump -u god -pheaven -h 10.0.10.10 accounting&gt; accounting_20141209.sql

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

答案 11 :(得分:1)

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

问题是我的连接端口不是默认端口(3306),我不得不将mysqldump端口与(-P3307)配合使用

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

答案 12 :(得分:1)

将-p作为第一个选项在Windows Server 2012R2上有效(在cmd.exe中为Admin)。

mysqldump.exe –p --user=root  --databases DBname --result-file=C:\DBname.sql

答案 13 :(得分:0)

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

我的问题是我试图转储到需要写入的管理员权限的目录,这就是导致func callPurchaseVC() { let page = PurchaseVC() present(page, animated: true, completion:nil) } 命令返回mysqldump的原因。

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

这是在Windows上。

答案 14 :(得分:0)

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

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

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

示例:如果root用户密码为hello,要导出的数据库名称为regdb,而xxx.sql是您要导出此regdb的文件,则命令将类似于:

mysqldump -u根-phello-数据库regdb> xxx.sql

注意:xxx.sql是该数据库将被转储的文件名。

答案 15 :(得分:0)

尝试以上大多数方法都没有乐趣。 查看我的密码,它包含的字符可能会使解析器感到困惑。我将密码用引号引起来,错误已解决。 -p“ a:@#$%^&+ 6>&FAEH”

使用8.0

答案 16 :(得分:0)

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

答案 17 :(得分:0)

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

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

答案 18 :(得分:0)

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

所以mysqldump -u user dbname > dump.sql

答案 19 :(得分:0)

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

以下三个小时的研究为我工作:

/Applications/MAMP/Library/bin/mysqldump  -u root -proot YOUR_DB > /Users/YOUR_USER/yourdump2.sql

答案 20 :(得分:0)

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

通过运行检查是否存在问题:

USE information_schema; 
SELECT DEFINER, SECURITY_TYPE FROM views;

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

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

答案 21 :(得分:0)

当mysql帐户有REQUIRE SSL时,Mysql使用正确的凭据回复拒绝访问

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

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

此处也发布了https://stackoverflow.com/a/39626932/1695680

答案 22 :(得分:0)

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

答案 23 :(得分:0)

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

答案 24 :(得分:0)

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

--password=mypassword

--password='mypassword'

答案 25 :(得分:0)

在我从MS Word文件复制mysqldump语句后,我发生了同样的问题。

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

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

表示

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

答案 26 :(得分:0)

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

奇怪的是,它的没有指定或标记的密码:

mysqldump -u root myschema mytable > dump.sql

答案 27 :(得分:-2)

转到开始 - &gt;所有程序 - &gt;配件右键单击命令提示符,单击“以管理员身份运行”

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

mysqldump --user root --password = root --all-databases&gt; dumps.sql

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