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

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

Các cách khác để viết các tùy chọn này.

Bạn có thể viết

mysql -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -e "SHOW DATABASES"

để chuyển các chuỗi trống làm đối số riêng biệt. Bình luận của bạn bên dưới cho thấy rằng khách hàng vẫn sẽ yêu cầu mật khẩu. Có thể nó diễn giải đối số trống dưới dạng tên cơ sở dữ liệu chứ không phải mật khẩu. Vì vậy, bạn có thể thử những cách sau để thay thế:

mysql --user="$MYSQL_ROOT" --password="$MYSQL_PASS" -e "SHOW DATABASES"

.my.cnf tệp

Nhưng ngay cả khi có cách, tôi vẫn khuyên bạn nên sử dụng ~/.my.cnf thay vào đó. Các đối số trên dòng lệnh có thể được đưa vào danh sách quy trình được tạo bởi ps -A -ocmd , để những người dùng khác có thể nhìn thấy chúng. .my.cnf mặt khác, tệp có thể (và nên) chỉ bạn mới có thể đọc được (sử dụng chmod 0600 ~/.my.cnf ), và sẽ được sử dụng tự động. Có tệp đó bao gồm các dòng sau:

[client]
user=root
password=

Sau đó, một mysql -e "SHOW DATABASES" đơn giản là đủ, vì khách hàng sẽ có được thông tin đăng nhập của mình từ tệp đó.

Xem 6.1.2.1. Nguyên tắc Người dùng Cuối về Bảo mật Mật khẩu về các cách khác nhau mà bạn có thể cung cấp mật khẩu, các lợi ích và nhược điểm tương ứng của chúng. Xem 4.2.3.3. Sử dụng Tệp tùy chọn để biết thông tin chung về .my.cnf này tệp



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO ::PARAM cho kiểu thập phân?

  2. bộ ký tự django với sự kỳ lạ của MySQL

  3. Cách nhận dữ liệu tuần hiện tại trong MySQL

  4. 7 cách tìm hàng trùng lặp khi bỏ qua khóa chính trong MySQL

  5. Sử dụng Tính năng Oracle JDeveloper Nâng cao cho Cơ sở dữ liệu MySQL