Vỏ mysql có giống như dòng lệnh không?

Thật kỳ lạ, mặc dù có rất nhiều câu trả lời [tương tự], nhưng không ai đề xuất điều này

Bạn có thể tạo tệp

CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
5 trong thư mục $HOME của mình, thư mục này chứa

[client]
host=127.0.0.1
port=3306
database=google
user=root
password=root

Và bạn sẽ chỉ phải làm

$> mysql

Để kết nối với cơ sở dữ liệu đó

Một vài lưu ý chính cần xem xét

  • Lưu trữ mật khẩu trong tệp đó không phải là một ý tưởng hay. Tệ nhất, hãy làm một
    CREATE USER 'root'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
    6. Nhưng tốt nhất là lưu trữ mật khẩu ở nơi khác. Các chủ đề khác trên StackOverflow cung cấp câu trả lời tuyệt vời cho điều đó
  • Bạn có thể tùy chỉnh dữ liệu trong tệp đó và để phần còn lại cho bạn. Chẳng hạn, xóa dòng
    CREATE USER 'root'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
    7 cho phép bạn thực hiện
    CREATE USER 'root'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
    8

Nếu bạn không muốn sử dụng đường hầm ssh, trong tôi. cnf hoặc mysqld. cnf bạn phải thay đổi 127. 0. 0. 1 với địa chỉ IP cục bộ của bạn [192. 168. 1. 100] để có quyền truy cập qua Lan. ví dụ dưới đây

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Tìm kiếm địa chỉ liên kết trong tôi. cnf hoặc mysqld. cnf

bind-address            =  127.0.0.1

và thay đổi 127. 0. 0. 1 đến 192. 168. 1. 100 [địa chỉ ip cục bộ]

bind-address            =  192.168.1.100

Để áp dụng thay đổi bạn đã thực hiện, phải khởi động lại máy chủ mysql bằng lệnh tiếp theo

sudo /etc/init.d/mysql restart

Sửa đổi quyền root của người dùng để truy cập lan [ chạy các truy vấn bên dưới trong máy chủ từ xa mà bạn muốn có quyền truy cập ]

root@192.168.1.100:~$ mysql -u root -p

..

CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Nếu bạn chỉ muốn có quyền truy cập từ địa chỉ ip cụ thể, hãy thay đổi 'root'@'%' thành 'root'@'[địa chỉ ip hoặc tên máy chủ]'

Cam kết này không thuộc về bất kỳ nhánh nào trên kho lưu trữ này và có thể thuộc về một nhánh bên ngoài kho lưu trữ

Bạn không thể thực hiện hành động đó vào lúc này

Bạn đã đăng nhập bằng tab hoặc cửa sổ khác. Tải lại để làm mới phiên của bạn. Bạn đã đăng xuất trong một tab hoặc cửa sổ khác. Tải lại để làm mới phiên của bạn

mysql [từ MariaDB 10. 4. 6, còn được gọi là mariadb] là một trình bao SQL đơn giản [có khả năng đọc GNU]. Nó hỗ trợ sử dụng tương tác và không tương tác. Khi được sử dụng tương tác, kết quả truy vấn được trình bày ở định dạng bảng ASCII. Khi được sử dụng không tương tác [ví dụ: dưới dạng bộ lọ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

Nếu bạn gặp sự cố do không đủ bộ nhớ cho tập hợp kết quả lớn, hãy sử dụng tùy chọn

mysql --user=user_name --password=your_password db_name
1. Điều này buộc mysql truy xuất kết quả từ máy chủ một hàng tại một thời điểm thay vì truy xuất toàn bộ tập kết quả và đệm nó trong bộ nhớ trước khi hiển thị. Điều này được thực hiện bằng cách trả về tập kết quả bằng cách sử dụng hàm API
mysql --user=user_name --password=your_password db_name
2 C trong thư viện máy khách/máy chủ thay vì
mysql --user=user_name --password=your_password db_name
3

Sử dụng mysql rất dễ dàng. Gọi nó từ lời nhắc của trình thông dịch lệnh của bạn như sau

$> mysql
1

Hoặc

________số 8

Sau đó nhập câu lệnh SQL, kết thúc câu lệnh bằng dấu “;”, \g hoặc \G rồi nhấn Enter

Nhập Control-C khiến mysql cố gắng hủy câu lệnh hiện tại. Nếu điều này không thể thực hiện được hoặc Control-C được nhập lại trước khi câu lệnh bị tắt, mysql sẽ thoát

Bạn có thể thực thi các câu lệnh SQL trong một tệp script [tệp bó] như thế này

$> mysql
3

Từ MariaDB 10. 4. 6,

mysql --user=user_name --password=your_password db_name
4 có sẵn dưới dạng liên kết tượng trưng tới
mysql --user=user_name --password=your_password db_name
5

Từ MariaDB 10. 5. 2,

mysql --user=user_name --password=your_password db_name
5 là liên kết tượng trưng và
mysql --user=user_name --password=your_password db_name
4 tên nhị phân

sử dụng mysql

Lệnh sử dụng

mysql --user=user_name --password=your_password db_name
5 và cú pháp chung là

$> mysql
9

Tùy chọn

mysql --user=user_name --password=your_password db_name
5 hỗ trợ các tùy chọn sau

Tệp tùy chọn

Ngoài việc đọc các tùy chọn từ dòng lệnh,

mysql --user=user_name --password=your_password db_name
5 cũng có thể đọc các tùy chọn từ các tệp tùy chọn. Nếu một tùy chọn không xác định được cung cấp cho
mysql --user=user_name --password=your_password db_name
5 trong tệp tùy chọn, thì tùy chọn đó sẽ bị bỏ qua

Các tùy chọn sau đây liên quan đến cách các công cụ dòng lệnh của MariaDB xử lý các tệp tùy chọn. Chúng phải được đưa ra làm đối số đầu tiên trên dòng lệnh

Trong MariaDB 10. 2 trở lên,

mysql --user=user_name --password=your_password db_name
5 được liên kết với MariaDB Connector/C. Tuy nhiên, Trình kết nối MariaDB/C chưa xử lý việc phân tích cú pháp các tệp tùy chọn cho máy khách này. Điều đó vẫn được thực hiện bởi mã phân tích tệp tùy chọn máy chủ. Xem MDEV-19035 để biết thêm thông tin

Nhóm tùy chọn

mysql --user=user_name --password=your_password db_name
5 đọc các tùy chọn sau đây từ các tệp tùy chọn

Cách chỉ định giao thức nào sẽ sử dụng khi kết nối với máy chủ mysqld

Bạn có thể buộc giao thức nào được sử dụng để kết nối với máy chủ

$> mysql
34 bằng cách cung cấp cho tùy chọn
$> mysql
35 một trong các giá trị sau. ________ 136, ________ 137, ________ 138 hoặc ________ 139

Nếu

$> mysql
35 không được chỉ định, trước MariaDB 10. 6. 1, các thuộc tính kết nối dòng lệnh không bắt buộc giao thức sẽ bị bỏ qua

Từ MariaDB 10. 6. 1, thuộc tính kết nối được chỉ định thông qua dòng lệnh [e. g.

$> mysql
91] sẽ buộc loại của nó. Giao thức phù hợp với thuộc tính kết nối tương ứng được sử dụng, e. g. kết nối TCP/IP được tạo khi
$> mysql
92 được chỉ định

Nếu nhiều hoặc không có thuộc tính kết nối nào được chỉ định thông qua dòng lệnh, thì điều sau đây sẽ xảy ra

Linux/Unix

  • Nếu
    $> mysql
    
    93 không được chỉ định hoặc
    $> mysql
    
    93 là
    $> mysql
    
    95, thì ổ cắm Unix được sử dụng
  • Trong các trường hợp khác [_______193 được đưa ra và nó không phải là ____195] thì kết nối TCP/IP thông qua tùy chọn
    $> mysql
    
    98 được sử dụng

Lưu ý rằng

$> mysql
95 là một giá trị đặc biệt. Sử dụng 127. 0. 0. 1 không phải là điều tương tự. Cái sau sẽ kết nối với máy chủ mysqld thông qua TCP/IP

các cửa sổ

  • Nếu
    bind-address            =  192.168.1.100
    
    10 được chỉ định và
    $> mysql
    
    93 không được chỉ định hoặc
    $> mysql
    
    93 là
    $> mysql
    
    95 thì kết nối sẽ diễn ra thông qua bộ nhớ dùng chung
  • Nếu
    bind-address            =  192.168.1.100
    
    10 không được chỉ định và
    $> mysql
    
    93 không được chỉ định hoặc
    $> mysql
    
    93 là
    $> mysql
    
    95 thì kết nối sẽ diễn ra thông qua các cửa sổ có tên là đường ống
  • Các đường ống được đặt tên cũng sẽ được sử dụng nếu thư viện máy khách
    bind-address            =  192.168.1.100
    
    18 /
    bind-address            =  192.168.1.100
    
    19 phát hiện ra rằng máy khách không hỗ trợ TCP/IP
  • Trong các trường hợp khác thì kết nối TCP/IP thông qua tùy chọn
    $> mysql
    
    98 được sử dụng

Cách kiểm tra giao thức nào được sử dụng

Lệnh

sudo /etc/init.d/mysql restart
21 hiển thị cho bạn thông tin về giao thức nào được sử dụng

bind-address            =  192.168.1.100
1

lệnh mysql

Ngoài ra còn có một số lệnh có thể chạy bên trong máy khách. Lưu ý rằng tất cả các lệnh văn bản phải ở dòng đầu tiên và kết thúc bằng ';'

Tệp mysql_history

Trên Unix, máy khách mysql ghi một bản ghi các câu lệnh đã thực thi vào một tệp lịch sử. Theo mặc định, tệp này có tên là

sudo /etc/init.d/mysql restart
22 và được tạo trong thư mục chính của bạn. Để chỉ định một tệp khác, hãy đặt giá trị của biến môi trường MYSQL_HISTFILE

Các. Tệp mysql_history phải được bảo vệ bằng chế độ truy cập hạn chế vì thông tin nhạy cảm có thể được ghi vào tệp, chẳng hạn như văn bản của câu lệnh SQL có chứa mật khẩu

Nếu bạn không muốn duy trì tệp lịch sử, trước tiên hãy xóa. mysql_history nếu nó tồn tại, sau đó sử dụng một trong các kỹ thuật sau

  • Đặt biến MYSQL_HISTFILE thành/dev/null. Để cài đặt này có hiệu lực mỗi khi bạn đăng nhập, hãy đặt cài đặt vào một trong các tệp khởi động của trình bao của bạn
  • Tạo ra. mysql_history như một liên kết tượng trưng đến/dev/null
sudo /etc/init.d/mysql restart
2

Bạn chỉ cần làm điều này một lần

dấu nhắc Lệnh

Lệnh nhắc cấu hình lại dấu nhắc mặc định

sudo /etc/init.d/mysql restart
23. Chuỗi để xác định dấu nhắc có thể chứa các chuỗi đặc biệt sau

mẹo mysql

Phần này mô tả một số kỹ thuật có thể giúp bạn sử dụng

sudo /etc/init.d/mysql restart
24 hiệu quả hơn

Hiển thị kết quả truy vấn theo chiều dọc

Một số kết quả truy vấn dễ đọc hơn nhiều khi được hiển thị theo chiều dọc, thay vì ở định dạng bảng ngang thông thường. Truy vấn có thể được hiển thị theo chiều dọc bằng cách kết thúc truy vấn bằng \G thay vì dấu chấm phẩy. Ví dụ: các giá trị văn bản dài hơn bao gồm các dòng mới thường dễ đọc hơn nhiều với đầu ra dọc

sudo /etc/init.d/mysql restart
8

Đối với người mới bắt đầu, một tùy chọn khởi động hữu ích là

sudo /etc/init.d/mysql restart
25 [hoặc
sudo /etc/init.d/mysql restart
26, có tác dụng tương tự]. Nó hữu ích cho các trường hợp khi bạn có thể đưa ra tuyên bố
sudo /etc/init.d/mysql restart
27 nhưng lại quên điều khoản
sudo /etc/init.d/mysql restart
28. Thông thường, một câu lệnh như vậy sẽ xóa tất cả các hàng khỏi bảng. Với
sudo /etc/init.d/mysql restart
25, bạn chỉ có thể xóa các hàng bằng cách chỉ định các giá trị chính xác định chúng. Điều này giúp ngăn ngừa tai nạn

Khi bạn sử dụng tùy chọn

sudo /etc/init.d/mysql restart
25, mysql sẽ đưa ra câu lệnh sau khi nó kết nối với máy chủ MariaDB

root@192.168.1.100:~$ mysql -u root -p
5

Câu lệnh SET có các tác dụng sau

  • Bạn không được phép thực thi câu lệnh CẬP NHẬT hoặc XÓA trừ khi bạn chỉ định ràng buộc khóa trong mệnh đề WHERE hoặc cung cấp mệnh đề GIỚI HẠN [hoặc cả hai]. Ví dụ
root@192.168.1.100:~$ mysql -u root -p
6
  • Máy chủ giới hạn tất cả các kết quả large
    sudo /etc/init.d/mysql restart
    
    81 ở 1.000 hàng trừ khi câu lệnh bao gồm mệnh đề
    sudo /etc/init.d/mysql restart
    
    82
  • Máy chủ hủy bỏ các câu lệnh
    sudo /etc/init.d/mysql restart
    
    81 nhiều bảng có thể cần kiểm tra hơn 1.000.000 tổ hợp hàng

Để chỉ định các giới hạn khác với 1.000 và 1.000.000, bạn có thể ghi đè các giá trị mặc định bằng cách sử dụng tùy chọn

sudo /etc/init.d/mysql restart
84 và
sudo /etc/init.d/mysql restart
85

CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
2

Vô hiệu hóa tự động kết nối lại mysql

Nếu máy khách mysql mất kết nối với máy chủ trong khi gửi câu lệnh, nó sẽ ngay lập tức và tự động cố gắng kết nối lại một lần với máy chủ và gửi lại câu lệnh. Tuy nhiên, ngay cả khi mysql kết nối lại thành công, kết nối đầu tiên của bạn đã kết thúc và tất cả các đối tượng và cài đặt phiên trước đó của bạn sẽ bị mất. các bảng tạm thời, chế độ tự động gửi và các biến phiên và do người dùng xác định. Ngoài ra, mọi giao dịch hiện tại sẽ quay trở lại. Hành vi này có thể gây nguy hiểm cho bạn, như trong ví dụ sau khi máy chủ bị tắt và khởi động lại giữa câu lệnh thứ nhất và câu lệnh thứ hai mà bạn không biết

mysql --user=user_name --password=your_password db_name
0

Biến người dùng @a đã bị mất khi kết nối và sau khi kết nối lại, nó không được xác định. Nếu điều quan trọng là phải chấm dứt mysql do lỗi nếu kết nối bị mất, bạn có thể khởi động ứng dụng khách mysql bằng tùy chọn

sudo /etc/init.d/mysql restart
86

Vỏ MySQL có giống như lệnh không

MySQL Shell là trình chỉnh sửa mã và ứng dụng khách dòng lệnh nâng cao dành cho MySQL . Ngoài SQL, MySQL Shell còn cung cấp khả năng viết kịch bản cho JavaScript và Python. Để biết thông tin về cách sử dụng MySQL Shell, hãy xem MySQL Shell 8. 0.

Vỏ MySQL là gì?

MySQL Shell là giao diện Javascript, Python hoặc SQL tương tác hỗ trợ phát triển và quản trị cho Máy chủ MySQL và là một thành phần của . Bạn có thể sử dụng MySQL Shell để thực hiện các truy vấn và cập nhật dữ liệu cũng như các hoạt động quản trị khác nhau.

Làm cách nào để kết nối với vỏ MySQL?

vào thư mục cài đặt MySQL rồi truy cập vào thư mục bin [mysql. exe phải được hiển thị trong danh sách tệp]
mở cmd ở cùng một vị trí
chạy mysql -u [tên người dùng] -p [không cần thêm -p nếu chưa đặt mật khẩu] rồi nhấn enter

Cách khởi động MySQL từ lệnh

Khởi chạy ứng dụng khách dòng lệnh MySQL. Để khởi chạy ứng dụng khách, hãy nhập lệnh sau vào cửa sổ Dấu nhắc Lệnh. mysql -u root -p . Tùy chọn -p chỉ cần thiết nếu mật khẩu gốc được xác định cho MySQL. Nhập mật khẩu khi được nhắc.

Chủ Đề