我正在尝试使用 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)
但我仍然得到同样的错误。我也尝试过从另一台机器连接,但问题仍然存在。
如果有人对下一步尝试有什么建议,我将不胜感激。似乎是一种解决方法,如果现在有一个也不会太糟糕。
非常感谢