2013-09-02 85 views
6

Tôi vừa đăng nhập vào EC2 của mình thông qua Putty trên Windows và tôi đã nhập vào trường hợp RDS và vào một cơ sở dữ liệu mà tôi đã tạo. Sau đó, tôi cố gắng nhập một kết xuất SQL từ máy tính của tôi với mã sau đây dẫn đến lỗi.Làm thế nào để nhập MYSQL Dump vào Amazon RDS

mysql> source C:\Users\guru\Downloads\latest.sql; 
    ERROR: 
    Unknown command '\U'. 
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'source C:\Users' at line 1 
    ERROR: 
    Unknown command '\D'. 
    ERROR: 
    Unknown command '\l'. 
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'uru\Downloads\latest.sql' at line 1 

Tệp tồn tại trong máy tính Windows của tôi. Hãy giúp tôi giải quyết lỗi.

+1

Bạn cần tải tệp lên trước. Tệp đó tồn tại trên máy cục bộ của bạn, nhưng không tồn tại trong phiên bản ec2 của bạn. Thử dùng WinSCP. – datasage

+0

Cảm ơn. Có cách nào tôi có thể nhập một mysql dump trực tiếp từ máy địa phương của tôi? – TechyTimo

+1

Có, nhưng bạn cần một máy khách mysql trên máy cục bộ của bạn để làm điều đó. Điều này có thể sẽ chậm hơn, sẽ có nhiều độ trễ hơn giữa mỗi câu lệnh. – datasage

Trả lời

4

Tôi đã tìm thấy một giải pháp thân thiện và đơn giản: Tải xuống SQLyog https://www.webyog.com và cung cấp thông tin chi tiết về ssh cho chi tiết đăng nhập ec2 và MYSQL của tôi. Tôi đã truy cập vào cơ sở dữ liệu của mình bằng cách sử dụng công cụ GUI này có tất cả các tùy chọn để nhập và xuất dữ liệu dễ dàng như trên localhost/phpmyadmin

3

Khi dữ liệu được đề cập, bạn có thể sẽ làm việc tốt hơn từ các trường hợp EC2 -> RDS của bạn. Nếu bạn thực sự muốn làm việc từ máy tính cục bộ của bạn, mặc dù:

  • Cài đặt MySQL cho Windows: http://dev.mysql.com/downloads/mysql/

  • Thêm thư mục cha của mysql.exe (công cụ dòng lệnh mysql) với môi trường đường dẫn của bạn biến.

Hãy thử những điều sau trong lời nhắc lệnh. Bạn cũng có thể sử dụng powershell, nhưng bạn sẽ cần phải bọc câu lệnh này trong cmd /c "mysql etc..." vì PowerShell xử lý chuyển hướng một chút khác nhau.

mysql -u myuser --password = mypass -h rdsEndpoint mydb < C: \ Users \ guru \ Downloads \ latest.sql

Thủ tục này cũng sẽ hữu ích để biết nếu bạn có nhu cầu cho phiên bản Windows EC2.

Ngoài ra: trích xuất dữ liệu từ RDS sang máy cục bộ của bạn có thể tốn kém, đặc biệt khi cơ sở dữ liệu của bạn phát triển. Nếu bạn chỉ làm điều này như một giải pháp sao lưu, thì bạn có thể muốn xem xét Snapshots hoặc sao lưu tự động. Nếu bạn đang làm điều này để nhân rộng môi trường RDS của bạn, bạn cũng có thể chuyển dữ liệu của bạn trực tiếp từ RDS sang các trường hợp EC2 của bạn, which is free if both instances are in the same availability zone.

+0

Cảm ơn thông tin. Vì vậy, tôi bị tính phí khi tôi mysqldump dữ liệu của tôi? – TechyTimo

+1

Tùy thuộc vào nơi nó đi, nhưng yeah sẽ nằm trong "Xuất dữ liệu" trong trang giá của họ mà tôi đã liên kết ở trên. Xuất khẩu sang EC2 rẻ hơn nhiều (và hoàn toàn miễn phí, trừ đi chi phí của cá thể) so với xuất khẩu sang máy địa phương của bạn. –

+1

Mặc dù câu trả lời này là một chút Windows-centric, lệnh cũng hoạt động tốt trên Linux (bất kỳ POSIX với khách hàng mysql cài đặt) 'mysql -u tên người dùng -p -h RDS_endpoint DB_name CrazyPyro