Ghi chú. Nếu bạn sử dụng mật khẩu trên dòng lệnh làm đối số cho tập lệnh, hãy lưu ý rằng bắt đầu từ MySQL 5. 6, cảnh báo sẽ được ghi lại về mật khẩu trống. Vì vậy, nếu bạn nâng cấp MySQL 5 hiện tại. 1 hoặc 5. 5 đến 5. 6 trong tương lai với tùy chọn này, bạn nên lưu ý khi gặp phải điều này
Từ MySQL5. 6. 6 trở đi, bạn có thể sử dụng tệp đăng nhập được mã hóa
Ví dụ sử dụng tiện ích mysql_config_editor
1. Thiết lập đường dẫn đăng nhập, bất kỳ tên nào cũng có thể được sử dụng để đặt đường dẫn đăng nhập và chuyển thông tin đăng nhập người dùng mà bạn muốn sử dụng cho mysqldump
$ path/to/5.6.13/bin/mysql_config_editor set --login-path=dump --host=localhost --user=root --password --socket=/tmp/mysql_5613.sock
Enter password:
2. Khi bạn nhập mật khẩu, nó sẽ tạo một mục được mã hóa trong tệp ~/. đăng nhập của tôi. cnf , bạn không cần thiết phải chuyển người dùng là root, bạn có thể sử dụng bất kỳ người dùng nào bạn có cho mục đích sao lưu
3. Xác nhận xem trình chỉnh sửa cấu hình đã tạo thông tin này chưa bằng cách chạy lệnh bên dưới
$ path/to/5.6.13/bin/mysql_config_editor print --all
[dump]
user = root
password = *****
host = localhost
socket = /tmp/mysql_5611.sock
Bây giờ bạn đã sẵn sàng để thực thi mysqldump mà không cần chuyển bất kỳ mật khẩu nào, hãy đảm bảo bạn chuyển chính xác tên đường dẫn đăng nhập, vì vậy chi tiết kết nối sẽ được tìm nạp từ tệp được mã hóa
$ path/to/5.6.13/bin/mysqldump --login-path=dump --all-databases > test_backup.sql
Sử dụng tệp ẩn để lưu trữ mật khẩu
Lưu mật khẩu trong một tệp ẩn và trong khi lên lịch trong crontab, hãy đánh dấu vị trí của mật khẩu dưới dạng đối số tập lệnh
GHI CHÚ. Do một lỗi đã biết, nếu mật khẩu của bạn chứa dấu #, bạn phải nhập nó bằng dấu ngoặc kép “abc#123”, nếu không nó sẽ được đọc là “abc”
Đôi khi cần chạy một số truy vấn MySQL từ giao diện dòng lệnh Linux mà không cần truy cập dấu nhắc MySQL tương tác
Ví dụ: khi cần lên lịch sao lưu cơ sở dữ liệu MySQL hoặc để tự động thực thi một số truy vấn SQL bằng tập lệnh Bash
Trong bài viết này, tôi sẽ trình bày các tùy chọn hữu ích nhất, theo quan điểm của tôi, của ứng dụng khách dòng lệnh MySQL và chỉ ra cách chạy nhiều truy vấn SQL tới cơ sở dữ liệu từ tập lệnh Bash
Mẹo hay. Liệt kê người dùng MySQL, mật khẩu của họ và các đặc quyền được cấp từ dấu nhắc dòng lệnh. Đọc thêm →
mysql. Thực thi truy vấn SQL từ Linux Shell
Thực thi truy vấn SQL từ dòng lệnh Linux
$ mysql -u USER -pPASSWORD -e "SQL_QUERY"
-pPASSWORD. Đây không phải là một lỗi đánh máy. Không được có khoảng cách giữa mật khẩu của bạn và -p
khi bạn chuyển nó trên dòng lệnh
Chạy truy vấn SQL trên cơ sở dữ liệu được chỉ định rõ ràng
$ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"
Chạy truy vấn SQL trên máy chủ được chỉ định rõ ràng
$ mysql -u USER -pPASSWORD -h HOSTNAME -e "SQL_QUERY"
Loại bỏ các tiêu đề cột
$ mysql -u USER -pPASSWORD -N -e "SQL_QUERY"
Loại bỏ đường viền bảng
$ mysql -u USER -pPASSWORD -B -e "SQL_QUERY"
Lưu đầu ra vào một tập tin
________số 8_______Mẹo hay. Tạo cơ sở dữ liệu MySQL và GRANT ALL PRIVILEGES
trên đó cho người dùng. Hướng dẫn MySQL đơn giản và rõ ràng với các ví dụ hay. Đọc thêm →
Các tùy chọn MySQL hữu ích nhất khi thực hiện các truy vấn SQL từ dòng lệnh Linux hoặc tập lệnh Bash
Tùy chọnMô tả$ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"0,
$ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"1Tên người dùng MySQL sẽ sử dụng khi kết nối với máy chủ.
$ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"2,
-p
Mật khẩu sử dụng khi kết nối với máy chủ. $ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"4,
$ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"5Cơ sở dữ liệu để sử dụng.
$ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"6,
$ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"7Kết nối với máy chủ MySQL trên máy chủ đã cho.
$ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"8,
$ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"9Không viết tên cột trong kết quả.
$ mysql -u USER -pPASSWORD -h HOSTNAME -e "SQL_QUERY"0,
$ mysql -u USER -pPASSWORD -h HOSTNAME -e "SQL_QUERY"1In kết quả bằng cách sử dụng tab làm dấu tách cột, với mỗi hàng trên một dòng mới
mysql. Chạy truy vấn SQL từ tập lệnh Bash
Để chạy nhiều truy vấn SQL hoặc một truy vấn SQL nhiều dòng, tôi sử dụng cấu trúc
$ mysql -u USER -pPASSWORD -h HOSTNAME -e "SQL_QUERY"2
Phần
$ mysql -u USER -pPASSWORD -h HOSTNAME -e "SQL_QUERY"3 nói với trình bao rằng tôi sẽ nhập nhiều dòng cho đến thẻ
$ mysql -u USER -pPASSWORD -h HOSTNAME -e "SQL_QUERY"4
Lưu ý rằng ở đây không được có bất kỳ khoảng trắng nào ngay trước thẻ
$ mysql -u USER -pPASSWORD -h HOSTNAME -e "SQL_QUERY"4 thứ hai, nếu không, nó sẽ được coi là một phần của truy vấn SQL
Nhân tiện, bạn có thể đổi tên
$ mysql -u USER -pPASSWORD -h HOSTNAME -e "SQL_QUERY"4 thành bất cứ thứ gì bạn muốn, e. g.
$ mysql -u USER -pPASSWORD -h HOSTNAME -e "SQL_QUERY"7
Mẹo hay. Bạn có một bản sao lưu? . Sao lưu cơ sở dữ liệu MySQL từ dòng lệnh. Điều này thực sự dễ dàng. Đọc thêm →