我试图从我的Amazon RDS实例使用mysqldump检索数据库。亚马逊RDS mysqldump问题
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)
我查了root权限,以及:
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服务器版本之间的版本不匹配:
Mysqldump 5.6 version needed on EC2 with MySQL 5.6
所以,我试图更新客户端5.6版本但我仍然有同样的错误。我已经尝试了各种不同的版本,现在已经回复到:
mysqldump -V
mysqldump Ver 10.13 Distrib 5.1.72, for unknown-linux-gnu (x86_64)
但我仍然得到相同的错误。我也尝试从另一台机器连接,但问题依然存在。
如果有人对接下来要做什么有什么建议,我会很感激。看起来像一个解决方法,如果现在有一个不会太糟糕。
非常感谢
您仍然有MySQL版本72年5月1日的客户端。您可能需要从第三方存储库进行安装。某些官方存储库可能会更新到新版本。 – datasage
嗨,我没有尝试从第三方存储库更新客户端,使它在版本5.6,但我得到了相同的错误消息。然后我回到了5.1.72,认为客户端与服务器相比在版本上可能遥遥领先。 – Huw
你确实需要一个新版本的mysqldump,除非一个版本有缺陷,否则规则是客户端应该比服务器更新,而不是更老......但这不是破坏它的原因。你在mysqldump中使用'-h',但在mysql中使用'--host ='。切换提供选项的方式是否会改变行为?另外,请查看您的my.cnf文件以查找“[mysqldump]”部分中的任何内容。 –