Amazon RDS mysqldump问题

Amazon RDS mysqldump问题,mysql,amazon-web-services,amazon-ec2,mysqldump,Mysql,Amazon Web Services,Amazon Ec2,Mysqldump,我正在尝试使用mysqldump从我的AmazonRDS实例检索数据库,例如 mysqldump –h myDBname.cra3xhjrgj69.eu-west-1.rds.amazonaws.com -u root –p --port 3306 --single-transaction --databases DBname > ~/tt.sql 但是我得到了一个错误: mysqldump: Got error: 2002: Can't connect to local MySQL

我正在尝试使用mysqldump从我的AmazonRDS实例检索数据库,例如

mysqldump –h myDBname.cra3xhjrgj69.eu-west-1.rds.amazonaws.com -u root –p  --port 3306 --single-transaction --databases  DBname > ~/tt.sql
但是我得到了一个错误:

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect
我可以使用客户端连接到数据库,但是:

mysql --host=myDBname.cra3xhjrgj69.eu-west-1.rds.amazonaws.com -u root -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 85250
Server version: 5.1.69-log MySQL Community Server (GPL)
我还检查了根权限:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*abcabcabc' WITH GRANT OPTION
这些看起来不错

读到这个问题,我认为可能是我的EC2 mysqldump和本文中的RDS MySQL服务器版本之间的版本不匹配:

因此,我尝试将客户端更新到5.6版,但仍然出现相同的错误。我现在尝试了各种不同的版本,目前已恢复到:

mysqldump -V
mysqldump  Ver 10.13 Distrib 5.1.72, for unknown-linux-gnu (x86_64)
但我还是犯了同样的错误。我还尝试从另一台机器连接,但问题仍然存在

如果有人对下一步的尝试有任何建议,我将不胜感激。似乎是一个解决办法,如果有,现在也不会太糟糕


非常感谢

伙计,我真不敢相信我花了2个小时来完成这项工作,而这是一个客户端版本的问题

数据库信息:
RDS MySQL版本:5.6.13

当我在RHEL6.4服务器上运行
mysqldump
时,出现以下错误:

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect
我检查了mysqldump的hte版本,结果是:

# mysqldump --version
mysqldump  Ver 10.13 Distrib 5.1.71, for redhat-linux-gnu (x86_64)
我试着用
yum
更新它,但它说最近的一次更新在yum-repo中可用

因此,我创建了一个
ubuntu12.04
实例,并在其上安装了MySQL客户端

现在我的Ubuntu实例上的版本是

# mysqldump --version
mysqldump  Ver 10.13 Distrib 5.5.34, for debian-linux-gnu (x86_64)
然后我运行了我的SQL转储,它就像一个符咒:

# mysqldump -hRDS_END_POINT -uUSERNAME -pPASWORD dbname> dbname.sql

您仍然拥有mysql版本5.1.72的客户端。您可能需要从第三方存储库安装它。一些官方存储库更新到新版本的速度可能很慢。您好,我确实尝试过从第三方存储库更新客户端,使其处于版本5.6,但是我收到了相同的错误消息。然后我又回到了5.1.72版本,我想可能是客户端的版本比服务器的版本领先太多了。你确实需要一个新版本的mysqldump,除非某个版本有bug,否则规则是客户端应该比服务器更新,而不是旧。。。但这并不是破坏这一切的原因。您对mysqldump使用了
-h
,但对mysql使用了
--host=
。切换提供选项的方式是否会改变行为?另外,请检查my.cnf文件中的
[mysqldump]
部分。好的,我已将客户端升级到5.6.14,并检查了/etc/my.cnf文件,但没有任何[mysqldump]部分的迹象。我也在其他常见的地方查看了my.cnf文件,但没有找到其他文件。我尝试使用'--host'参数而不是'-h'来执行mysqldump命令,但是仍然没有任何乐趣。
mysql
有效,
mysqldump
无效是毫无意义的,尽管如果您不使用来自同一版本的官方Oracle二进制文件来实现这两个功能,那么所有关于是否正常的赌注都是无效的,因为某些第三方版本有奇怪的错误默认情况下编译并激活的“有用”内容(如在陌生的地方查找配置文件和套接字)。如果您将
--protocol=TCP
添加到您的
mysqldump
调用中会怎么样?或者,如果您通过ping您的RDS实例的名称并使用
--host=IP.add.re.ss
来获取IP地址会怎么样?
[client]
[mysql]中有什么奇怪/有趣的地方吗
my.cnf?在执行mysqldump时要记住一件好事,那就是确保mysql的版本相同。