Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để thực thi một lệnh MySQL từ một tập lệnh shell?

Bạn cần sử dụng -p cờ để gửi mật khẩu. Và thật khó vì bạn không được có khoảng trắng giữa -p và mật khẩu.

$ mysql -h "server-name" -u "root" "-pXXXXXXXX" "database-name" < "filename.sql"

Nếu bạn sử dụng dấu cách sau -p nó làm cho ứng dụng khách mysql nhắc bạn một cách tương tác về mật khẩu và sau đó nó diễn giải đối số lệnh tiếp theo dưới dạng tên cơ sở dữ liệu:

$ mysql -h "server-name" -u "root" -p "XXXXXXXX" "database-name" < "filename.sql"
Enter password: <you type it in here>
ERROR 1049 (42000): Unknown database 'XXXXXXXX'

Trên thực tế, tôi thích lưu trữ người dùng và mật khẩu trong ~ / .my.cnf nên tôi không phải đặt nó trên dòng lệnh:

[client]
user = root
password = XXXXXXXX

Sau đó:

$ mysql -h "server-name" "database-name" < "filename.sql"

Nhận xét lại của bạn:

Tôi luôn chạy các lệnh mysql ở chế độ hàng loạt như trên trên dòng lệnh và trong các tập lệnh shell mọi lúc. Thật khó để chẩn đoán điều gì sai với tập lệnh shell của bạn, bởi vì bạn chưa chia sẻ tập lệnh chính xác hoặc bất kỳ đầu ra lỗi nào. Tôi khuyên bạn nên chỉnh sửa câu hỏi ban đầu của mình ở trên và cung cấp ví dụ về những gì sai.

Ngoài ra, khi khắc phục sự cố tập lệnh shell, tôi sử dụng -x gắn cờ để tôi có thể biết cách nó thực thi từng lệnh:

$ bash -x myscript.sh


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi nào sử dụng MongoDB hoặc các hệ thống cơ sở dữ liệu hướng tài liệu khác?

  2. Cách cài đặt MySQL 8 trên Windows

  3. Làm việc với MyISAM trong MySQL

  4. Cách tìm đối chiếu trong MySQL

  5. MySQL - Lấy số hàng khi chọn