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