Dài dòng trong MySQL là gì?

Khi bạn chạy mysql không tương tác, định dạng đầu ra mặc định không chỉ thay đổi mà còn trở nên ngắn gọn hơn. Ví dụ: mysql không in số lượng hàng hoặc cho biết thời gian thực hiện các truy vấn. Để bảo mysql dài dòng hơn, hãy sử dụng -v hoặc --verbose. Các tùy chọn này có thể được chỉ định nhiều lần để tăng mức độ chi tiết. Hãy thử các lệnh sau để xem đầu ra khác nhau như thế nào

% echo "SELECT NOW( )" | mysql
% echo "SELECT NOW( )" | mysql -v
% echo "SELECT NOW( )" | mysql -vv
% echo "SELECT NOW( )" | mysql -vvv

Các đối tác của -v và --verbose là -s và --silent. Các tùy chọn này cũng có thể được sử dụng nhiều lần để tăng hiệu quả

Lệnh mysql là một trình bao đơn giản cho các lệnh SQL. Với sự tương tác của người dùng, nó có thể nhập các lệnh tại một dấu nhắc đặc biệt hoặc chạy một tập lệnh bó chứa các lệnh SQL của bạn

  • Giới thiệu về MySQL
  • Lệnh Linux trợ giúp

Sự miêu tả

Khi mysql được sử dụng tương tác, kết quả truy vấn được trình bày ở định dạng bảng. Khi được sử dụng không tương tác, kết quả được trình bày ở định dạng được phân tách bằng tab. Định dạng đầu ra có thể được thay đổi bằng các tùy chọn lệnh

Cách đơn giản nhất để gọi mysql là chỉ định tên người dùng MySQL của bạn bằng tùy chọn -u và yêu cầu mysql nhắc bạn nhập mật khẩu của bạn bằng -p

mysql -u username -p

Bạn được hiển thị một thông báo giới thiệu ngắn gọn và sau đó được đặt tại dấu nhắc mysql>

Tại dấu nhắc mysql>, hãy nhập các lệnh MySQL, chẳng hạn như

mysql> SHOW DATABASES;

Để liệt kê các cơ sở dữ liệu tồn tại, hoặc

mysql> USE dbname;

để bắt đầu sử dụng cơ sở dữ liệu có tên dbname, hoặc

mysql> SELECT 21 * 2 AS meaning_of_life;

để hiển thị sản phẩm toán học của 2 và 21

Để kết thúc phiên mysql của bạn và quay lại dấu nhắc trình bao, hãy sử dụng lệnh

mysql> QUIT

Chạy các lệnh MySQL từ một tập lệnh bó

Thay vì sử dụng mysql một cách tương tác, bạn có thể thực thi các câu lệnh MySQL từ tệp script. Chẳng hạn, nếu bạn có một tệp văn bản có tên mysqlscript. txt chứa các lệnh MySQL, mỗi lệnh một dòng, bạn có thể sử dụng lệnh này

mysql -u username -p db_name < mysqlscript.txt > output.txt

và sau khi nhắc bạn nhập mật khẩu, mysql sẽ thực thi các lệnh trong mysqlscript. txt trên cơ sở dữ liệu db_name, ghi đầu ra vào tệp đầu ra. txt

Để có mô tả chuyên sâu về cách cài đặt MySQL trên hệ thống của bạn và tổng quan về cách sử dụng tương tác cơ bản của mysql, hãy xem phần giới thiệu về MySQL

cú pháp

mysql [options] db_name

Tùy chọn

mysql hỗ trợ các tùy chọn sau, có thể được chỉ định trên dòng lệnh hoặc trong nhóm [mysql] và [client] của tệp tùy chọn

--help, -?Hiển thị thông báo trợ giúp và thoát. --auto-rehashBật tính năng tự động phục hồi. Tùy chọn này được bật theo mặc định, cho phép hoàn thành tên cơ sở dữ liệu, bảng và cột. Sử dụng --disable-auto-rehash để tắt tính năng băm lại. Điều đó khiến mysql bắt đầu nhanh hơn, nhưng bạn phải đưa ra lệnh rehash nếu bạn muốn sử dụng hoàn thành tên.

Để hoàn thành tên, hãy nhập phần đầu tiên và nhấn Tab. Nếu tên rõ ràng, mysql hoàn thành nó. Nếu không, bạn có thể nhấn lại Tab để xem các tên có thể bắt đầu bằng những gì bạn đã nhập cho đến nay. Hoàn thành không xảy ra nếu không có cơ sở dữ liệu mặc định. --auto-vertical-outputLàm cho các tập hợp kết quả hiển thị theo chiều dọc nếu chúng quá rộng đối với cửa sổ hiện tại và sử dụng định dạng bảng bình thường nếu không. (Điều này áp dụng cho câu lệnh kết thúc bởi ; hoặc \G. ) Tùy chọn này đã được thêm vào MySQL 5. 5. 3. --batch, -BPrint kết quả 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. Với tùy chọn này, mysql không sử dụng tệp lịch sử. Chế độ hàng loạt dẫn đến định dạng đầu ra không phải dạng bảng và thoát khỏi các ký tự đặc biệt. Thoát có thể bị vô hiệu hóa bằng chế độ thô; . --bind-address=ip_addressTrên máy tính có nhiều giao diện mạng, tùy chọn này có thể chọn giao diện nào được sử dụng khi kết nối với máy chủ MySQL. Tùy chọn này chỉ được hỗ trợ trong phiên bản máy khách mysql được cung cấp cùng với MySQL Cluster. Nó không có sẵn trong MySQL Server 5 tiêu chuẩn. 5 bản phát hành. --character-sets-dir=pathThư mục cài đặt bộ ký tự. --column-namesGhi tên cột vào kết quả. --column-type-info, -mDisplay siêu dữ liệu tập hợp kết quả. --comments, -cCó nên giữ lại các bình luận trong các câu lệnh được gửi tới máy chủ không. Mặc định là --skip-comments (loại bỏ bình luận), kích hoạt với --comments (giữ lại bình luận). --compress, -CCompress tất cả thông tin được gửi giữa máy khách và máy chủ nếu cả hai đều hỗ trợ nén. --database=db_name,
-D db_nameCơ sở dữ liệu sẽ sử dụng. Công tắc này hữu ích chủ yếu trong tệp tùy chọn. --debug[=debug_options],
-# [debug_options]Viết nhật ký gỡ lỗi. Một chuỗi debug_options điển hình là 'd. t. o,file_name'. Mặc định là 'd. t. o,/tmp/mysql. dấu vết'. --debug-checkIn một số thông tin gỡ lỗi khi chương trình thoát. --debug-info, -TPrint thông tin gỡ lỗi và thống kê sử dụng bộ nhớ và CPU khi chương trình thoát. --default-auth=pluginPlugin xác thực phía máy khách để sử dụng.

Tùy chọn này đã được thêm vào MySQL 5. 5. 7. --default-character-set=charset_nameSử dụng charset_name làm bộ ký tự mặc định cho máy khách và kết nối.

Một vấn đề phổ biến xảy ra khi hệ điều hành sử dụng utf8 hoặc một bộ ký tự nhiều byte khác là đầu ra từ máy khách mysql được định dạng không chính xác, bởi vì máy khách MySQL đó sử dụng bộ ký tự latin1 theo mặc định. Bạn thường có thể khắc phục các sự cố như vậy bằng cách sử dụng tùy chọn này để buộc khách hàng sử dụng bộ ký tự hệ thống thay thế. --delimiter=strĐặt dấu phân cách câu lệnh. Mặc định là ký tự chấm phẩy (;"). --disable-named-commandsVô hiệu hóa các lệnh có tên. Chỉ sử dụng biểu mẫu \* hoặc chỉ sử dụng các lệnh được đặt tên ở đầu dòng kết thúc bằng dấu chấm phẩy (;"). Lệnh mysql bắt đầu với tùy chọn này được bật theo mặc định. Tuy nhiên, ngay cả với tùy chọn này, các lệnh định dạng dài vẫn hoạt động từ dòng đầu tiên. --enable-cleartext-pluginBật plugin xác thực văn bản rõ ràng mysql_clear_password. Tùy chọn này đã được thêm vào MySQL 5. 5. 27. --execute=câu lệnh,
-e câu lệnh Thực hiện câu lệnh và thoát. Định dạng đầu ra mặc định giống như định dạng được tạo với --batch. Với tùy chọn này, mysql không sử dụng tệp lịch sử. --force, -fContinue ngay cả khi xảy ra lỗi SQL. --host=host_name,
-h host_nameKết nối với máy chủ MySQL trên máy chủ đã cho. --html, -HSản xuất đầu ra HTML. --ignore-spaces, -iIgnore khoảng trắng sau tên hàm. Tác dụng của chuyển đổi này được mô tả trong phần thảo luận về chế độ SQL IGNORE_SPACE. --init-command=strSQL câu lệnh để thực thi sau khi kết nối với máy chủ. Nếu tự động kết nối lại được bật, câu lệnh sẽ được thực hiện lại sau khi kết nối lại xảy ra. --line-numbersViết số dòng cho các lỗi. Vô hiệu hóa điều này với --skip-line-numbers. --local-infile[={0. 1}]Bật hoặc tắt khả năng ĐỊA PHƯƠNG cho LOAD DATA INFILE. Không có giá trị, tùy chọn cho phép ĐỊA PHƯƠNG. Tùy chọn có thể được cung cấp dưới dạng --local-infile=0 hoặc --local-infile=1 để tắt hoặc bật LOCAL một cách rõ ràng. Kích hoạt LOCAL không có hiệu lực nếu máy chủ cũng không hỗ trợ nó. --named-commands, -GEnable các lệnh mysql được đặt tên. Các lệnh định dạng dài được cho phép, ngoài các lệnh định dạng ngắn. Ví dụ: thoát và \q cả hai đều được nhận dạng. Sử dụng --skip-named-commands để tắt các lệnh được đặt tên. --no-auto-rehash, -AĐiều này có tác dụng tương tự như -skip-auto-rehash. Xem mô tả cho --auto-rehash. --no-beep, -bDo not beep khi xảy ra lỗi. --no-named-commands, -gDeprecated, thay vào đó hãy sử dụng --disable-named-commands. --no-named-commands đã bị xóa trong MySQL 5. 5. 3. --no-pager Dạng không dùng nữa của --skip-pager. Xem tùy chọn --pager. --no-pager đã bị xóa trong MySQL 5. 5. 3. --no-teeDạng không dùng nữa của --skip-tee. Xem tùy chọn --tee. --no-tee bị xóa trong MySQL 5. 5. 3. --one-database, -oIgnore câu lệnh ngoại trừ những câu lệnh xảy ra trong khi cơ sở dữ liệu mặc định là cơ sở dữ liệu có tên trên dòng lệnh. Tùy chọn này là thô sơ và nên được sử dụng cẩn thận. Lọc câu lệnh chỉ dựa trên câu lệnh SỬ DỤNG.

Ban đầu, mysql thực thi các câu lệnh trong đầu vào vì việc chỉ định một cơ sở dữ liệu db_name trên dòng lệnh tương đương với việc chèn USE db_name vào đầu đầu vào. Sau đó, đối với mỗi câu lệnh USE gặp phải, mysql chấp nhận hoặc từ chối các câu lệnh sau tùy thuộc vào việc cơ sở dữ liệu có tên có phải là cơ sở dữ liệu trên dòng lệnh hay không. Nội dung của các tuyên bố là không quan trọng.

Giả sử mysql được gọi để xử lý tập hợp các câu lệnh này.

DELETE FROM db2.t2;USE db2;DROP TABLE db1.t1;CREATE TABLE db1.t1 (i INT);USE db1;INSERT INTO t1 (i) VALUES(1);CREATE TABLE db2.t1 (j INT);
Nếu dòng lệnh là mysql --force --one-database db1, mysql sẽ xử lý đầu vào như sau.

Câu lệnh XÓA được thực thi vì cơ sở dữ liệu mặc định là db1, mặc dù câu lệnh đặt tên một bảng trong một cơ sở dữ liệu khác.

Các câu lệnh DROP TABLE và CREATE TABLE không được thực thi vì cơ sở dữ liệu mặc định không phải là db1, mặc dù các câu lệnh đặt tên bảng trong db1.

Các câu lệnh INSERT và CREATE TABLE được thực thi vì cơ sở dữ liệu mặc định là db1, mặc dù câu lệnh CREATE TABLE đặt tên cho một bảng trong một cơ sở dữ liệu khác. --pager[=command]Sử dụng lệnh đã cho để phân trang đầu ra truy vấn. Nếu lệnh bị bỏ qua, máy nhắn tin mặc định là giá trị của biến môi trường PAGER của bạn. Máy nhắn tin hợp lệ ít hơn, nhiều hơn, mèo [> tên tệp], v.v. Tùy chọn này chỉ hoạt động trên Unix và chỉ trong chế độ tương tác. Để tắt phân trang, hãy sử dụng --skip-pager. Xem để biết thêm thông tin về phân trang đầu ra. --password[=password],
-p[password]Mật khẩu sử dụng khi kết nối với máy chủ. Nếu bạn sử dụng biểu mẫu tùy chọn ngắn (-p), bạn không thể có khoảng cách giữa tùy chọn và mật khẩu. Nếu bạn bỏ qua giá trị mật khẩu sau tùy chọn --password hoặc -p trên dòng lệnh, mysql sẽ nhắc cho một.

Việc chỉ định mật khẩu trên dòng lệnh được coi là không an toàn. Bạn có thể sử dụng một tệp tùy chọn để tránh cung cấp mật khẩu trên dòng lệnh. --pipe, -WTrên Windows, kết nối với máy chủ bằng một đường ống có tên. Tùy chọn này chỉ áp dụng nếu máy chủ hỗ trợ kết nối ống dẫn có tên. --plugin-dir=pathThư mục để tìm plugin. Có thể cần phải chỉ định tùy chọn này nếu tùy chọn --default-auth được sử dụng để chỉ định plugin xác thực nhưng mysql không tìm thấy nó.

Tùy chọn này đã được thêm vào MySQL 5. 5. 7. --port=port_num,
-P port_numSố cổng TCP/IP sẽ sử dụng cho kết nối. --prompt=format_strĐặt dấu nhắc theo định dạng đã chỉ định. Mặc định là mysql>. Các trình tự đặc biệt chứa dấu nhắc được mô tả trong phần. --protocol={TCP. Ổ CẮM. ĐƯỜNG ỐNG. BỘ NHỚ}Giao thức kết nối được sử dụng để kết nối với máy chủ. Nó rất hữu ích khi thông thường các thông số kết nối khác sẽ khiến một giao thức được sử dụng khác với giao thức bạn muốn. --quick, -qKhông lưu trữ từng kết quả truy vấn; . Điều này có thể làm chậm máy chủ nếu đầu ra bị treo. Với tùy chọn này, mysql không sử dụng tệp lịch sử. --raw, -rĐối với đầu ra dạng bảng, "boxing" xung quanh các cột cho phép phân biệt một giá trị cột với giá trị khác. Đối với đầu ra không dạng bảng (chẳng hạn như được tạo ở chế độ hàng loạt hoặc khi tùy chọn --batch hoặc --silent được cung cấp), các ký tự đặc biệt được thoát trong đầu ra để có thể dễ dàng xác định chúng. Dòng mới, tab, NUL và dấu gạch chéo ngược được viết là \n, \t, \0 và \\. Tùy chọn --raw vô hiệu hóa ký tự này thoát.

Ví dụ sau đây minh họa đầu ra dạng bảng so với không dạng bảng và việc sử dụng chế độ thô để tắt tính năng thoát.

mysql
mysql -u username -p
0
mysql> SHOW DATABASES;
0
mysql> SHOW DATABASES;
1
mysql -u username -p
0
mysql> SHOW DATABASES;
3
mysql> SHOW DATABASES;
4
mysql -u username -p
0
mysql> SHOW DATABASES;
6--kết nối lạiNếu mất kết nối với máy chủ, hãy tự động thử kết nối lại. Một nỗ lực kết nối lại duy nhất được thực hiện mỗi khi mất kết nối. Để chặn hành vi kết nối lại, hãy sử dụng --skip-reconnect. --safe-updates,
--i-am-a-dummy,
-UPChỉ cho phép các câu lệnh UPDATE và DELETE chỉ định các hàng cần sửa đổi bằng phím . Nếu bạn đã đặt tùy chọn này trong tệp tùy chọn, bạn có thể ghi đè tùy chọn đó bằng cách sử dụng --safe-updates trên dòng lệnh. --secure-authKhông gửi mật khẩu đến máy chủ cũ (trước 4. 1. 1) định dạng. Điều này ngăn các kết nối ngoại trừ các máy chủ sử dụng định dạng mật khẩu mới hơn. --show-warnings Làm cho các cảnh báo hiển thị sau mỗi câu lệnh, nếu có bất kỳ. Tùy chọn này áp dụng cho chế độ tương tác và hàng loạt. --sigint-ignoreBỏ qua tín hiệu SIGINT (thường là kết quả của việc nhập Control+C). --silent, -sChế độ im lặng. Sản xuất ít sản lượng hơn. Tùy chọn này có thể được đưa ra nhiều lần để tạo ra sản lượng ngày càng ít hơn.

Tùy chọn này dẫn đến định dạng đầu ra không phải dạng bảng và thoát các ký tự đặc biệt. Thoát có thể bị vô hiệu hóa bằng chế độ thô; . --skip-column-names, -Không viết tên cột trong kết quả. --skip-line-numbers, -LDKhông viết số dòng cho các lỗi. Hữu ích khi bạn muốn so sánh các tệp kết quả bao gồm thông báo lỗi. --socket=path, -S pathĐối với các kết nối tới máy chủ cục bộ, tệp ổ cắm Unix sẽ sử dụng hoặc trên Windows, tên của đường ống được đặt tên sẽ sử dụng. --ssl*Các tùy chọn bắt đầu bằng --ssl chỉ định có kết nối với máy chủ bằng SSL hay không và cho biết nơi tìm các khóa và chứng chỉ SSL. --table, -tDisplay đầu ra ở định dạng bảng. Công tắc này là mặc định để sử dụng tương tác, nhưng có thể tạo đầu ra bảng ở chế độ hàng loạt. --tee=file_nameThêm một bản sao đầu ra vào tệp đã cho. Tùy chọn này chỉ hoạt động trong chế độ tương tác. Phần có tên "LỆNH MYSQL", thảo luận thêm về các tệp tee. --unbuffered, -nFlush bộ đệm sau mỗi truy vấn. --user=user_name,
-u user_nameTên người dùng MySQL sẽ sử dụng khi kết nối với máy chủ. --verbose, chế độ -vVerbose. Tạo ra nhiều đầu ra hơn về những gì chương trình làm. Tùy chọn này có thể được cung cấp nhiều lần để tạo ra nhiều sản lượng hơn. (Ví dụ: -v -v -v tạo định dạng đầu ra của bảng ngay cả ở chế độ hàng loạt. )--version, -VDisplay thông tin phiên bản và thoát. --vertical, -EPrint các hàng đầu ra truy vấn theo chiều dọc (một dòng trên mỗi giá trị cột). Nếu không có tùy chọn này, bạn có thể chỉ định đầu ra dọc cho các câu lệnh riêng lẻ bằng cách kết thúc chúng bằng \G. --wait, -wNếu không thể thiết lập kết nối, hãy đợi và thử lại thay vì hủy bỏ. --xml, -XSản xuất đầu ra XML. Xem hướng dẫn sử dụng mysql để biết thêm thông tin.

lệnh MySQL

mysql gửi từng câu lệnh SQL mà bạn đưa ra tới máy chủ để được thực thi. Lưu ý rằng tất cả các lệnh văn bản trước tiên phải trực tuyến và kết thúc bằng ';'

Ngoài ra còn có một bộ lệnh mà mysql tự giải thích. Để biết danh sách các lệnh này, hãy nhập trợ giúp hoặc \h tại dấu nhắc mysql>

?(\?)Từ đồng nghĩa với 'trợ giúp'. xóa(\c)Xóa lệnh. connect(\r)Kết nối lại với máy chủ. Đối số tùy chọn là db và Host. dấu phân cách(\d)Đặt dấu phân cách câu lệnh. chỉnh sửa(\e)Chỉnh sửa lệnh với $EDITOR. ego(\G)Gửi lệnh tới mysql server, hiển thị kết quả theo chiều dọc. thoát (\ q) Thoát khỏi mysql. Tương tự như thoát. go(\g)Gửi lệnh đến máy chủ mysql. trợ giúp(\h)Hiển thị trợ giúp này. nopager(\n)Vô hiệu hóa máy nhắn tin, in ra thiết bị xuất chuẩn. notee(\t)Không ghi vào outfile. máy nhắn tin(\P)Đặt PAGER [to_pager]. In kết quả truy vấn qua PAGER. print(\p)In lệnh hiện tại. dấu nhắc(\R)Thay đổi dấu nhắc mysql của bạn,thoát(\q)Thoát mysql. rehash(\#)Băm hoàn thành xây dựng lại. nguồn(\. ) Thực thi tệp tập lệnh SQL. Lấy tên tệp làm đối số. status(\s)Nhận thông tin trạng thái từ máy chủ. hệ thống(\. ) Thực thi lệnh shell hệ thống. tee(\T)Đặt tệp ngoài [to_outfile]. Nối mọi thứ vào outfile đã cho. sử dụng(\u)Sử dụng cơ sở dữ liệu khác. Lấy tên cơ sở dữ liệu làm đối số. bộ ký tự(\C)Chuyển sang bộ ký tự khác. Có thể cần thiết để xử lý binlog với bộ ký tự nhiều byte. cảnh báo(\W)Hiển thị cảnh báo sau mỗi câu lệnh. nowarning(\w)Không hiển thị cảnh báo sau mỗi câu lệnh

ví dụ

Để biết mô tả chuyên sâu về cách cài đặt MySQL và tổng quan về các lệnh cơ bản, hãy xem Giới thiệu về MySQL

Sau đây là một vài lệnh đáng chú ý khác

mysql> SHOW DATABASES;
7

Sao lưu cơ sở dữ liệu "hope_SMF" vào smf. sql sau khi tên người dùng và mật khẩu đã được xác minh

mysql> SHOW DATABASES;
8

Trạng thái đang chạy trong khi ở dấu nhắc mysql> sẽ cung cấp cho bạn kết quả trạng thái MySQL tương tự như những gì được hiển thị bên dưới

Cờ trong MySQL là gì?

các cờ mysql được trình biên dịch sử dụng và đặt môi trường bạn muốn làm việc . Có những lá cờ như. '--with-archive-storage-engine' thực hiện những gì nó nêu, nó sẽ khởi động quy trình mysql nhưng cũng khởi động hệ thống ở chế độ nội dung có thể lưu trữ.

Làm cách nào để chạy tập lệnh trong MySQL?

Để chạy tập lệnh SQL trong MySQL, hãy sử dụng bàn làm việc của MySQL . Trước tiên, bạn cần mở MySQL workbench. Bây giờ, Tệp -> Mở Tập lệnh SQL để mở tập lệnh SQL. Lưu ý - Nhấn nút OK hai lần để kết nối với MySQL.

Nhật ký lỗi trong MySQL là gì?

Nhật ký lỗi chứa bản ghi về thời gian khởi động và tắt mysqld . Nó cũng chứa các thông báo chẩn đoán chẳng hạn như lỗi, cảnh báo và ghi chú xảy ra trong quá trình khởi động và tắt máy chủ cũng như trong khi máy chủ đang chạy.

Làm cách nào để kiểm tra danh sách người dùng MySQL?

Chúng ta có thể sử dụng truy vấn sau để xem danh sách tất cả người dùng trong máy chủ cơ sở dữ liệu. mysql> Chọn người dùng từ mysql. .
> mysql -u root -p
Nhập mật khẩu. *********
mysql> sử dụng mysql;
Cơ sở dữ liệu đã thay đổi
mysql> CHỌN người dùng TỪ người dùng;