Hãy để chúng tôi hiểu các tùy chọn mặc định, các tùy chọn mong đợi giá trị và dấu ‘=’ trong MySQL -
Theo quy ước, các dạng tùy chọn dài để gán giá trị được viết bằng dấu bằng (=). Nó đã được hiển thị bên dưới -
mysql --host=tonfisk --user=jon
Đối với các tùy chọn yêu cầu giá trị, tức là không có giá trị mặc định, thì không bắt buộc phải có dấu bằng. Điều này có nghĩa là lệnh dưới đây sẽ hợp lệ trong những trường hợp như vậy -
mysql --host tonfisk --user jon
Trong cả hai trường hợp trên, máy khách mysql cố gắng kết nối với máy chủ MySQL đang chạy trên máy chủ có tên “tonfisk” với sự trợ giúp của tài khoản có tên người dùng là “jon”.
Do hành vi này, các vấn đề đôi khi có thể xuất hiện khi không có giá trị nào được cung cấp cho một tùy chọn mong đợi một giá trị được cung cấp.
Ví dụ
Khi người dùng kết nối với máy chủ MySQL đang chạy trên máy chủ tonfisk với tư cách là người dùng jon, lệnh dưới đây sẽ được chạy -
shell> mysql --host 85.224.35.45 --user jon
Đầu ra
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 8.0.25 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
Sau đó, chúng tôi thực hiện lệnh dưới đây -
Truy vấn
mysql> SELECT CURRENT_USER();
Đầu ra
+----------------+ | CURRENT_USER() | +----------------+ | jon@% | +----------------+ 1 row in set (0.00 sec)
Khi giá trị bắt buộc bị bỏ qua cho một trong các tùy chọn này, nó sẽ dẫn đến lỗi. Lỗi có thể giống như hình dưới đây -
shell> mysql --host 85.224.35.45 –user
Đầu ra
mysql: option '--user' requires an argument
Trong trường hợp trên, mysql không thể tìm thấy giá trị sau tùy chọn --user vì không có gì xuất hiện sau nó trên dòng lệnh. Nhưng nếu người dùng bỏ qua giá trị cho một tùy chọn không phải là tùy chọn cuối cùng được sử dụng, thì sẽ xảy ra lỗi khác mà người dùng có thể không mong đợi -
shell> mysql --host --user jon
Đầu ra
ERROR 2005 (HY000): Unknown MySQL server host '--user' (1)