6

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

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 服务器版本之间的版本不匹配:

带有 MySQL 5.6 的 EC2 需要 MySQLdump 5.6 版本

所以我尝试将客户端更新到 5.6 版,但我仍然遇到同样的错误。我现在尝试了各种不同的版本,目前已恢复为:

mysqldump -V
mysqldump  Ver 10.13 Distrib 5.1.72, for unknown-linux-gnu (x86_64)

但我仍然得到同样的错误。我也尝试过从另一台机器连接,但问题仍然存在。

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

非常感谢

4

1 回答 1

6

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

数据库信息:RDS MySQL version: 5.6.13

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

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 中。

所以我创建了一个Ubuntu 12.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
于 2013-12-13T10:45:14.720 回答