Làm cách nào để xóa cơ sở dữ liệu trên máy chủ MySQL? Loại bỏ các truy vấn MySQL nặng thông qua SSH

mysqladmin là một tiện ích dòng lệnh đi kèm với máy chủ MySQL và được các quản trị viên cơ sở dữ liệu sử dụng để thực hiện một số MySQL đơn giản các tác vụ như đặt mật khẩu root hoặc mật khẩu của người dùng khác, thay đổi mật khẩu root hoặc mật khẩu của người dùng khác, giám sát các quy trình mysql, đặt lại đặc quyền, kiểm tra trạng thái máy chủ, v.v.

Bài viết này có chứa một số rất lệnh hữu ích mysqladmin, được quản trị viên hệ thống và quản trị viên cơ sở dữ liệu sử dụng trong công việc hàng ngày của họ. Bạn phải cài đặt sẵn máy chủ MySQL để có thể làm theo các ví dụ này.

1. Làm cách nào để đặt mật khẩu MySQL Root?

Nếu bạn có cài đặt mới Máy chủ MySQL thì nó không yêu cầu bất kỳ mật khẩu nào để kết nối vì người dùng gốc. Để đặt mật khẩu người dùng root trong MySQL, hãy sử dụng lệnh tiếp theo:

Mysqladmin -u mật khẩu gốc YOUR_NEW_PASSWORD

2. Làm cách nào để thay đổi mật khẩu MySQL Root?

Nếu bạn muốn thay đổi hoặc cập nhật mật khẩu root MySQL, bạn cần gõ lệnh sau. Hãy nói rằng của bạn Mật khẩu cũđó là 123456 và bạn muốn đổi nó thành mật khẩu mới xyz123:

Mysqladmin -u root -p123456 mật khẩu "xyz123"

Thao tác tương tự được thực hiện cho những người dùng khác thay vì root, hãy nhập tên người dùng mà bạn muốn thay đổi mật khẩu.

3. Làm cách nào để kiểm tra xem máy chủ MySQL có đang chạy không?

Để tìm hiểu xem máy chủ MySQL có đang chạy hay không, hãy sử dụng lệnh sau:

Mysqladmin -u root -p ping

4. Làm cách nào để kiểm tra phiên bản MySQL nào tôi đang sử dụng?

Lệnh sau sẽ hiển thị phiên bản MySQL cũng như trạng thái chạy hiện tại:

Phiên bản Mysqladmin -u root -p

5. Làm thế nào để biết trạng thái hiện tại của máy chủ MySQL?

Để xác định trạng thái của máy chủ MySQL, hãy sử dụng lệnh sau. Mysqladmin sẽ hiển thị thời gian hoạt động với mật đường đang chạy và hàng đợi.

Mysqladmin -u root -p trạng thái

6. Làm cách nào để kiểm tra trạng thái của tất cả các biến và giá trị của máy chủ MySQL?

Để kiểm tra tất cả các biến và giá trị của máy chủ MySQL đang chạy, hãy gõ lệnh sau. Đầu ra phải giống như thế này:

Mysqladmin -u root -p trạng thái mở rộng

7. Làm cách nào để xem tất cả các biến và giá trị trạng thái MySQL?

Để xem tất cả các biến và giá trị của máy chủ MySQL đang chạy, hãy sử dụng lệnh như dưới đây:

Mysqladmin -u root -p biến

8. Làm cách nào để kiểm tra tất cả các quy trình của máy chủ MySQL đang hoạt động?

Lệnh sau hiển thị tất cả tiến trình đang chạy Truy vấn cơ sở dữ liệu MySQL:

9. Làm cách nào để tạo cơ sở dữ liệu trên máy chủ MySQL?

Để tạo đội mới TRÊN máy chủ MySQL sử dụng lệnh được hiển thị dưới đây:

Mysqladmin -u root -p tạo data_name

10. Làm cách nào để xóa cơ sở dữ liệu trên máy chủ MySQL?

Để xóa cơ sở dữ liệu khỏi máy chủ MySQL, hãy sử dụng lệnh sau. Nhấn 'y' để xác nhận.

Mysqladmin -u root -p thả data_name

11. Làm cách nào để tải lại/đặt lại đặc quyền MySQL?

Lệnh tải lại yêu cầu máy chủ tải lại các bảng cấp. Lệnh làm mới sẽ đặt lại tất cả các bảng và mở lại tệp nhật ký.

Mysqladmin -u root -p tải lại; mysqladmin -u root -p làm mới;

12. Làm thế nào để tắt máy chủ MySQL một cách an toàn?

Để tắt máy chủ MySQL một cách an toàn, hãy sử dụng lệnh sau:

Mysqladmin -u root -p tắt máy

Bạn cũng có thể sử dụng các lệnh sau để khởi động/dừng máy chủ MySQL:

Sudo systemctl dừng mysql.service Sudo systemctl bắt đầu mysql.service

13. Một số lệnh xóa MySQL hữu ích

Dưới đây là một số lệnh tuôn ra hữu ích kèm theo mô tả.

  • máy chủ tuôn ra: Xóa tất cả thông tin khỏi bộ nhớ đệm của máy chủ.
  • bàn phẳng: Đặt lại tất cả các bảng.
  • chủ đề tuôn ra: Xóa bộ nhớ đệm của tất cả các chủ đề.
  • nhật ký tuôn ra: Xóa tất cả nhật ký thông tin.
  • đặc quyền tuôn ra: Tải lại các bảng trợ cấp (giống như tải lại).
  • trạng thái tuôn ra: Xóa các biến trạng thái.
mysqladmin -u root -p tuôn ra-hosts mysqladmin -u root -p tuôn ra bảng mysqladmin -u root -p tuôn ra chủ đề mysqladmin -u root -p tuôn ra nhật ký mysqladmin -u root -p tuôn ra đặc quyền mysqladmin -u root - trạng thái tuôn ra p

14. Làm cách nào để chấm dứt tiến trình máy khách MySQL đang ngủ?

Sử dụng lệnh sau để phát hiện tiến trình máy khách MySQL đang ngủ:

Danh sách quy trình Mysqladmin -u root -p

Bây giờ hãy chạy lệnh với kill và xử lý ID như hiển thị bên dưới:

Mysqladmin -u root -p kill 5

Nếu bạn cần chấm dứt nhiều quy trình, hãy chuyển ID tiến trình dưới dạng danh sách được phân tách bằng dấu phẩy:

Mysqladmin -u root -p kill 5.10

15. Làm thế nào để chạy nhiều lệnh mysqladmin cùng lúc?

Nếu bạn muốn chạy nhiều lệnh mysqladmin cùng lúc, lệnh đó sẽ trông giống như sau:

Mysqladmin -u root -p phiên bản trạng thái danh sách quy trình

16. Làm cách nào để kết nối với máy chủ mysql từ xa?

Để kết nối với máy chủ MySQL từ xa, hãy sử dụng -h (máy chủ) với địa chỉ IP của máy từ xa:

Mysqladmin -h 172.16.25.126 -u root -p

17. Làm cách nào để thực thi lệnh trên máy chủ MySQL từ xa?

Giả sử bạn muốn xem trạng thái MySQL từ xa server thì lệnh sẽ là:

Mysqladmin -h 172.16.25.126 -u root -p trạng thái

18. Làm cách nào để bắt đầu/dừng sao chép trên máy chủ MySQL phụ từ xa?

Để bắt đầu/dừng sao chép MySQL trên máy chủ phụ (salve), hãy sử dụng các lệnh sau:

Mysqladmin -u root -p start-slave mysqladmin -u root -p stop-slave

19. Làm cách nào để lưu thông tin gỡ lỗi MySQL vào tệp nhật ký?

Lệnh yêu cầu máy chủ ghi lại thông tin gỡ lỗi về các khóa được sử dụng, bộ nhớ được sử dụng và mức sử dụng truy vấn trong tệp nhật ký MySQL, cũng bao gồm thông tin về các sự kiện lập lịch.

Mysqladmin -u root -p gỡ lỗi

20. Tùy chọn và cách sử dụng mysqladmin

Bạn có thể tìm hiểu tất cả các tùy chọn và lệnh có sẵn của mysqladmin bằng cách gõ:

Mysqladmin --trợ giúp

Chúng tôi đã cố gắng đưa hầu hết các lệnh mysqladmin vào ví dụ trong bài viết. Nếu chúng tôi bỏ lỡ điều gì đó, hãy viết bình luận.

Khởi động và dừng máy chủ MySQL từ dòng lệnh

Bạn có thể khởi động máy chủ MySQL theo cách thủ công theo một trong hai cách:

Bấm đúp vào biểu tượng tệp mysqld-nt.exe, nằm trong thư mục con bin của thư mục cài đặt chương trình MySQL.

Mở một cửa sổ lệnh Chuỗi Windows. Để thực hiện việc này, hãy nhấp vào nút Bắt đầu, chọn Chạy từ menu, trong cửa sổ Chạy chương trình xuất hiện, trong trường Mở, nhập lệnh cmd và nhấp vào OK. Một cửa sổ dòng lệnh sẽ xuất hiện trên màn hình (Hình 1.25).

Cơm. 1,25. Cửa sổ nhắc lệnh


Tại dấu nhắc lệnh, nhập lệnh

mysqld-nt

và nhấn Enter. Máy chủ MySQL sẽ khởi động.

Nếu khi thiết lập máy chủ, đường dẫn đến thư mục con bin không được thêm vào giá trị hệ thống đường dẫn biến, sau đó để khởi động máy chủ, bạn không chỉ cần nhập tên tệp mà còn cả đường dẫn đầy đủ đến nó, ví dụ:

C:\ File chương trình\MySQL\MySQL Server 5.0\bin\mysqld-nt

Nếu bạn muốn xem thông báo chẩn đoán về máy chủ trong cửa sổ nhắc lệnh, thay vì mysqld-nt, hãy nhập

bảng điều khiển mysqld-nt

Chú ý!

Nếu bạn không chỉ định mật khẩu người dùng root khi thiết lập máy chủ MySQL, bạn phải đặt mật khẩu khi khởi động máy chủ lần đầu tiên (nếu không, bất kỳ ai cũng có thể quản lý máy chủ bằng root mà không cần mật khẩu).

Để đặt mật khẩu root, hãy mở cửa sổ Dấu nhắc Lệnh mới và nhập lệnh sau:

mật khẩu gốc mysqladmin -u<пароль>

(hoặc C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u mật khẩu gốc<пароль>, nếu đường dẫn tới thư mục con bin chưa được thêm vào giá trị của biến hệ thống Path khi thiết lập máy chủ) và nhấn Enter.

Trong tương lai, nếu bạn cần thay đổi mật khẩu người dùng root, hãy chạy lệnh tương tự, chỉ sử dụng tùy chọn -r:

mật khẩu mysqladmin -u root -p<новый пароль>

Khi lời nhắc Nhập mật khẩu xuất hiện, hãy nhập mật khẩu cũ của bạn và nhấn Enter.

Cuối cùng, nếu bạn cần dừng máy chủ MySQL, hãy chạy lệnh

mysqladmin -u root -p tắt máy

và tại dấu nhắc Nhập mật khẩu, nhập mật khẩu người dùng root. Bấm phím Enter. Máy chủ MySQL sẽ bị dừng.

Bạn cũng có thể sử dụng tiện ích MySQL Administrator đồ họa để khởi động và dừng máy chủ MySQL.

Khởi động và dừng máy chủ MySQL bằng quản trị viên MySQL

Để khởi động máy chủ MySQL bằng tiện ích MySQL Administrator đồ họa, hãy làm theo các bước sau.

1. Khởi chạy chương trình Quản trị viên MySQL (Bắt đầu → Tất cả chương trình → MySQL → Quản trị viên MySQL). Một cửa sổ kết nối máy chủ sẽ xuất hiện trên màn hình (Hình 1.26).

Cơm. 1.26.


2. Nhấn và giữ phím Ctrl rồi nhấp vào nút Bỏ qua xuất hiện ở góc dưới bên phải cửa sổ thay vì nút Hủy. Cửa sổ MySQL Administrator chính sẽ xuất hiện trên màn hình (Hình 1.27).

Cơm. 1.27. Cửa sổ chính của Quản trị viên MySQL


4. Nếu máy chủ MySQL chưa được cấu hình là Dịch vụ Windows, khi đó nút Start Service nằm ở vùng bên phải cửa sổ sẽ không khả dụng. Các bước sơ bộ sau đây phải được thực hiện:

1) Chuyển đến tab Cấu hình dịch vụ. Tìm nút Cài đặt dịch vụ mới ở cuối tab và nhấp vào nút đó;

2) trong hộp thoại xuất hiện, chỉ định tên dịch vụ và nhấp OK;

3) trong trường Tên tệp cấu hình, nhập đường dẫn đến tập tin cấu hình my.ini (Hình 1.28), ví dụ C: \Program Files\ MySQL\MySQL Server 5.0\my.ini. Màu chữ đỏ có nghĩa là không tìm thấy tệp; nếu màu thay đổi thành bình thường thì đường dẫn là chính xác;

4) trong trường Đường dẫn đến nhị phân tập tin thực thi) nhập đường dẫn đến tệp mysqld-nt.exe, ví dụ C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt;

6) quay lại tab Bắt đầu/Dừng dịch vụ.

Cơm. 1,28. Tab Định cấu hình Dịch vụ 5. Nhấp vào nút Bắt đầu Dịch vụ. Máy chủ MySQL sẽ khởi động.


Chú ý!

Nếu bạn không chỉ định mật khẩu người dùng root khi thiết lập máy chủ MySQL, bạn phải đặt mật khẩu đó khi khởi động máy chủ lần đầu tiên (nếu không, bất kỳ ai cũng có thể quản lý máy chủ bằng quyền root mà không cần mật khẩu). TRONG Phiên bản hiện tại Quản trị viên MySQL Không có sẵn mật khẩu gốc và để thực hiện thao tác này, bạn phải sử dụng tiện ích dòng lệnh mysqladmin (xem tiểu mục “Khởi động và dừng máy chủ MySQL từ dòng lệnh”).

Để dừng máy chủ MySQL bằng sử dụng MySQL Quản trị viên hãy làm theo các bước sau.

1. Khởi chạy chương trình Quản trị viên MySQL (Bắt đầu → Tất cả chương trình → MySQL → Quản trị viên MySQL). Một cửa sổ kết nối máy chủ sẽ xuất hiện trên màn hình (xem Hình 1.26).

Máy chủ lưu trữ – giá trị localhost (máy tính cục bộ);

Cổng – số cổng được chọn khi thiết lập máy chủ (mặc định – 3306);

Tên sử dụng – giá trị gốc;

Mật khẩu - mật khẩu người dùng root. Bấm vào đồng ý.

3. Trong cửa sổ MySQL Administrator chính, ở khung bên trái, nhấp vào Kiểm soát dịch vụ(Quản lý dịch vụ).

4. Trong khung bên phải của cửa sổ, nhấp vào nút Dừng dịch vụ. Máy chủ MySQL sẽ bị dừng.

Trong tiểu mục tiếp theo, bạn sẽ tìm hiểu cách khởi động máy chủ MySQL bằng Công cụ quản trị Windows.

Khởi động và dừng máy chủ MySQL từ bảng điều khiển

Nếu máy chủ MySQL được định cấu hình là dịch vụ Windows bằng cách sử dụng trình hướng dẫn thiết lập (xem tiểu mục “Cấu hình máy chủ MySQL”) hoặc sử dụng tiện ích Quản trị viên MySQL (xem tiểu mục “Khởi động và dừng máy chủ MySQL bằng Quản trị viên MySQL”), sau đó bắt đầu và dừng nó Bạn có thể sử dụng thành phần Dịch vụ của Control Panel.

Để truy cập thành phần Dịch vụ, hãy nhấp vào nút Bắt đầu, chọn Bảng điều khiển từ menu, sau đó bấm đúp vào Công cụ quản trị trong Bảng điều khiển và cuối cùng bấm đúp vào Dịch vụ trong cửa sổ Công cụ quản trị. Cửa sổ Dịch vụ sẽ xuất hiện trên màn hình (Hình 1.29) với danh sách tất cả các dịch vụ cục bộ.

Cơm. 1,29. Dịch vụ MySQL trong bảng điều khiển


Trong cửa sổ Dịch vụ, nhấp vào tên của dịch vụ MySQL (tên được xác định khi tạo dịch vụ trong trình hướng dẫn cấu hình hoặc trong Quản trị viên MySQL). Sau đó nhấp vào liên kết mong muốn dưới tên dịch vụ: Bắt đầu dịch vụ, Dừng dịch vụ hoặc Khởi động lại dịch vụ.

Khi máy chủ MySQL được khởi động, bạn có thể kết nối với nó. Trong các phần phụ sau, bạn sẽ học cách thực hiện việc này.

Kết nối với máy chủ từ dòng lệnh

Để kết nối với máy chủ MySQL từ dòng lệnh, hãy làm theo các bước sau.

1. Mở cửa sổ Dấu nhắc Lệnh của Windows. Để thực hiện việc này, hãy nhấp vào nút Bắt đầu, chọn Chạy từ menu, trong cửa sổ Chạy chương trình xuất hiện, nhập cmd vào trường Mở và nhấp vào OK.

2. Tại dòng lệnh (xem Hình 1.25), nhập lệnh

mysql -h<Имя компьютера>-u<Имя пользователя>-P

(Ở đâu<Имя компьютера>là tên của máy tính mà máy chủ đang chạy) và nhấn Enter. Khi được nhắc Nhập mật khẩu, hãy nhập mật khẩu của người dùng.

Nếu bạn cần kết nối với máy chủ MySQL chạy trên cùng một máy tính thì có thể bỏ qua tên máy tính (localhost) chẳng hạn

mysql -u gốc -p

Sau khi kết nối với máy chủ, dấu nhắc dòng lệnh sẽ thay đổi thành mysql> (Hình 1.30). Bây giờ bạn có thể bắt đầu làm việc với cơ sở dữ liệu: thêm bảng, nhập và truy vấn dữ liệu, đăng ký người dùng mới, v.v.

Cơm. 1h30. Kết nối với máy chủ MySQL từ dòng lệnh


Để ngắt kết nối khỏi máy chủ, chỉ cần gõ lệnh trong dòng lệnh

và nhấn Enter.

Một cách khác để kết nối với máy chủ MySQL được cung cấp bởi tiện ích Trình duyệt truy vấn MySQL đồ họa.

Kết nối với máy chủ bằng Trình duyệt truy vấn MySQL

Tiện ích Trình duyệt truy vấn MySQL là một giao diện để tạo, chỉnh sửa và thực thi các câu lệnh SQL. Nó thuận tiện hơn dòng lệnh. Nếu bạn quyết định sử dụng Trình duyệt truy vấn MySQL để làm việc với cơ sở dữ liệu, hãy làm theo các bước sau để kết nối với máy chủ.

1. Khởi chạy chương trình Trình duyệt truy vấn MySQL (Bắt đầu → Tất cả chương trình → MySQL → Trình duyệt truy vấn MySQL). Trên màn hình sẽ xuất hiện cửa sổ kết nối máy chủ (Hình 1.31).

Cơm. 1.31. Cửa sổ kết nối máy chủ MySQL


2. Trong các trường của cửa sổ kết nối máy chủ, nhập thông số kết nối:

Máy chủ máy chủ – tên của máy tính mà máy chủ MySQL đang chạy;

Cổng – số cổng được chọn khi thiết lập máy chủ (mặc định – 330 6);

Tên người dùng – tên người dùng;

Mật khẩu – mật khẩu người dùng;

Lược đồ mặc định – Tên của cơ sở dữ liệu bạn sẽ làm việc (đây có thể là cơ sở dữ liệu hiện có hoặc cơ sở dữ liệu mới).

3. Nhấp vào OK. Nếu bạn đã nhập tên cho cơ sở dữ liệu mới thì trong hộp thoại xuất hiện, hãy bấm Có để tạo cơ sở dữ liệu này.

Sau khi kết nối với máy chủ, cửa sổ MySQL Query Browser chính sẽ xuất hiện trên màn hình (Hình 1.32). Trong đó, bạn có thể thực hiện bất kỳ thao tác nào với cơ sở dữ liệu: thêm bảng, nhập và truy vấn dữ liệu, đăng ký người dùng mới, v.v.

Cơm. 1,32. Cửa sổ chính của Trình duyệt truy vấn MySQL


Chú ý!

Phông chữ mặc định được sử dụng trong Trình duyệt truy vấn MySQL để hiển thị các truy vấn SQL không hỗ trợ các chữ cái tiếng Nga. Để nhập các chữ cái tiếng Nga vào văn bản truy vấn, bạn phải chọn một phông chữ khác (ví dụ: Arial hoặc Book Antiqua). Để thực hiện việc này, trong cửa sổ Trình duyệt truy vấn MySQL chính, hãy mở menu Công cụ và chọn Tùy chọn. Trong cửa sổ Tùy chọn xuất hiện, ở khung bên trái, nhấp vào Tùy chọn chung ( Thông số chung) và ở vùng bên phải trong trường Phông chữ Mã, chọn từ danh sách phông chữ mong muốn. Nhấp vào nút Áp dụng.

Để ngắt kết nối khỏi máy chủ, chỉ cần đóng cửa sổ Trình duyệt truy vấn MySQL.

Điều này kết thúc phần giới thiệu của chúng tôi về MySQL và chuyển sang phần tổng hợp kết quả.

1.6. Bản tóm tắt

Trong chương này, MySQL DBMS và tiện ích đồ họa Quản trị viên MySQL và Trình duyệt truy vấn MySQL. Bạn đã thành thạo một quy trình khá phức tạp để cài đặt và định cấu hình máy chủ MySQL, học cách quản lý máy chủ và kết nối với nó. Bạn cũng đã tìm hiểu cách hoạt động của cơ sở dữ liệu quan hệ và cách thiết kế cơ sở dữ liệu của riêng bạn.

Vì vậy, bước tiếp theo là xây dựng cơ sở dữ liệu trong MySQL. Chương thứ hai được dành cho việc này. Nó sẽ chỉ cho bạn cách tạo bảng, nhập thông tin vào bảng và tìm thông tin bạn cần trong cơ sở dữ liệu.

chương 2
Quản lý cơ sở dữ liệu với SQL

Trong chương này, bạn sẽ tìm hiểu cách làm việc với dữ liệu trong MySQL DBMS, cách xác định cấu trúc của nó cũng như cách thêm, thay đổi và xóa dữ liệu. Các hoạt động này được thực hiện bởi SQL − ngôn ngữ phổ quát truy vấn có cấu trúc, đó là phương tiện tiêu chuẩn truy cập vào Cơ sở dữ liệu quan hệ dữ liệu.

Bạn có thể sử dụng bất kỳ ứng dụng máy khách máy chủ MySQL nào để thực thi các lệnh SQL. Chương này sẽ không đề cập đến các ứng dụng của bên thứ ba. Bạn sẽ chỉ được giới thiệu các ứng dụng được tạo bởi MySQL AB: tiện ích dòng lệnh mysql và tiện ích Trình duyệt truy vấn MySQL đồ họa.

Tất cả các hoạt động dữ liệu đều có sẵn trong cả hai tiện ích. Trình duyệt truy vấn MySQL thuận tiện khi làm việc với cơ sở dữ liệu: các thành phần của nó được trình bày rõ ràng, bạn có thể trực tiếp chỉnh sửa dữ liệu (không cần sử dụng toán tử CẬP NHẬT SQL), làm việc với các truy vấn, chẳng hạn như xây dựng chúng bằng một công cụ đặc biệt (và bạn không cần để nhập tên bảng và cột theo cách thủ công), lưu truy vấn vào tệp, xuất kết quả truy vấn và hơn thế nữa. Bạn có thể tìm hiểu về tất cả các khả năng của Trình duyệt truy vấn MySQL bằng cách tham khảo tài liệu bằng tiếng Nga, có thể tìm thấy tại http://dev.mysql.com/doc/query-browser/ru/index.html.

Trước tiên, bạn sẽ tìm hiểu cách chạy các lệnh SQL trong Trình duyệt truy vấn MySQL và dòng lệnh, sau đó chúng tôi sẽ chỉ đề cập đến cú pháp của các lệnh SQL.

2.1. Thực thi các lệnh SQL

Trước khi thực thi các lệnh SQL, bạn cần kết nối với máy chủ MySQL đang chạy (cách thực hiện việc này đã được mô tả trong Chương 1). Trong phần này, bạn sẽ tìm hiểu cách tạo các lệnh SQL và gửi chúng đến máy chủ để thực thi.

Nếu bạn đang sử dụng dòng lệnh, thì để thực thi lệnh SQL, hãy nhập văn bản của nó vào cửa sổ dòng lệnh và nhấn phím Enter để gửi lệnh đến máy chủ. Để tránh các vấn đề khi mã hóa dữ liệu tiếng Nga, trước khi bắt đầu làm việc với dữ liệu, hãy chạy lệnh

ĐẶT TÊN cp866;

Bạn có thể xem kết quả thực hiện lệnh này trong hình. 2.1.

Cơm. 2.1.Đặt mã hóa trên dòng lệnh


Lệnh SET NAMES phải được lặp lại khi mọi người kết nối với máy chủ bằng dòng lệnh. Lệnh này cho máy chủ biết rằng ứng dụng khách này (tiện ích mysql) sử dụng mã hóa CP-866 (đây là mã hóa dòng lệnh của Windows) và máy chủ sẽ tự động thực hiện chuyển đổi mã hóa khi giao tiếp với ứng dụng khách.

Sau khi thay đổi mã hóa, bạn có thể nhập bất kỳ lệnh SQL nào vào dòng lệnh. Một thông báo về kết quả của lệnh cũng như dữ liệu được yêu cầu được hiển thị trực tiếp trong cửa sổ dòng lệnh (Hình 2.2).

Cơm. 2.2. Thực hiện truy vấn SQL trên dòng lệnh


Tiện ích mysql cho phép bạn nhập các lệnh nhiều dòng (trong Hình 2.3, lệnh SHOW DATABASES được nhập theo cách này). Nếu dấu chấm phẩy không được nhập làm dấu hiệu kết thúc lệnh thì khi bạn nhấn phím Enter, tiện ích không gửi lệnh đến máy chủ mà nhắc bạn tiếp tục nhập lệnh. Nếu bạn muốn hủy lệnh nhiều dòng, hãy gõ \c (Hình 2.3).

Cơm. 2.3. Lệnh nhiều dòng


Nếu bạn sử dụng Trình duyệt truy vấn MySQL thì bạn không cần thiết lập mã hóa - chương trình này hoạt động ở dạng mã hóa UTF-8 và tự nó báo cáo điều này cho máy chủ. Tuy nhiên, trong MySQL Query Browser có vấn đề hiển thị các chữ cái tiếng Nga trong vùng truy vấn (khu vực nhập văn bản lệnh SQL, Hình 2.4). Để giải quyết vấn đề này, bạn cần thay đổi phông chữ được sử dụng trong vùng truy vấn (cách thực hiện việc này đã được mô tả ở cuối chương trước). Bạn chỉ cần thay đổi phông chữ một lần.

Cơm. 2.4. Thực thi truy vấn SQL trong trình duyệt truy vấn MySQL


Trong vùng truy vấn, bạn có thể nhập nhiều lệnh SQL cùng một lúc, như trong Hình. 2.4. Lệnh hiện tại (con trỏ nằm trên một trong các dòng của nó) được tô sáng bằng nền trắng, các lệnh còn lại được hiển thị trên nền xám nhạt. Để thực thi lệnh hiện tại, bạn có thể nhấp vào nút Thực thi nằm ở bên phải vùng nhắc hoặc tổ hợp phím Ctrl+Enter. Sau khi thực hiện lệnh, dữ liệu được yêu cầu sẽ được hiển thị trong vùng kết quả và thông báo về kết quả của lệnh sẽ được hiển thị ở cuối vùng này.

Bây giờ bạn đã học cách nhập lệnh SQL, hãy bắt đầu quản lý dữ liệu bằng các lệnh này. Trước hết, chúng ta sẽ xem xét các lệnh được thiết kế để hoạt động với toàn bộ cơ sở dữ liệu.

2.2. Tạo cơ sở dữ liệu

Trong phần này, bạn sẽ tìm hiểu cách tạo và xóa cơ sở dữ liệu, thay đổi mã hóa mặc định cho nó, chọn cơ sở dữ liệu hiện tại và xem danh sách tất cả các cơ sở dữ liệu trên máy chủ này MySQL.

Để tạo cơ sở dữ liệu, hãy chạy lệnh

TẠO NÊN CƠ SỞ DỮ LIỆU<Имя базы данных>;

Ví dụ, lệnh

TẠO CƠ SỞ CƠ SỞ SalesDept;

tạo cơ sở dữ liệu có tên SalesDept.

Nếu vì lý do nào đó bạn cần đặt mã hóa mặc định cho cơ sở dữ liệu mới khác với mã hóa được chỉ định khi thiết lập MySQL, thì khi tạo cơ sở dữ liệu, bạn có thể chỉ định quy tắc mã hóa (bộ ký tự) và/hoặc quy tắc so sánh (sắp xếp) mong muốn cho các giá trị ký tự:

TẠO NÊN CƠ SỞ DỮ LIỆU<Имя базы данных>

BỘ NHÂN VẬT<Имя кодировки>

SẮP XẾP<Имя правила сравнения>;

Ví dụ, nếu bạn đang ở căn cứ mới nhập dữ liệu có mã hóa CP-1251, thì chúng tôi sẽ chỉ ra mã hóa này khi tạo cơ sở dữ liệu theo cách này:

TẠO CƠ SỞ DỮ LIỆU Phòng kinh doanh

BỘ KÝ TỰ cp1251 SÀNH LẬP cp1251_general_ci;

Khuyên bảo

Để xem danh sách các mã hóa được sử dụng trong MySQL, hãy chạy lệnh SHOW CHARACTER SET; và để xem danh sách các quy tắc so sánh các giá trị ký hiệu, hãy sử dụng lệnh SHOW COLLATION; Trong trường hợp này, bạn có thể sử dụng toán tử THÍCH: ví dụ: để xem tất cả các quy tắc so sánh cho mã hóa CP-1251, hãy chạy lệnh SHOW COLLATION THÍCH %1251%;. Đuôi “_ci” (không phân biệt chữ hoa chữ thường) trong tên của quy tắc so sánh có nghĩa là khi so sánh và sắp xếp không tính đến trường hợp ký tự, kết thúc “_cs” (phân biệt chữ hoa chữ thường) – trường hợp được tính đến, kết thúc “_bin” (nhị phân) – so sánh và sắp xếp được thực hiện bởi mã số nhân vật. Đối với hầu hết các quy tắc so sánh, bạn có thể tìm thấy mô tả (nghĩa là thứ tự các ký tự mà chúng sẽ được sắp xếp theo thứ tự đó). giá trị văn bản) trên trang web http://www.collation-charts.org/mysql60/.

Mã hóa được chỉ định khi tạo cơ sở dữ liệu sẽ được sử dụng theo mặc định cho các bảng trong cơ sở dữ liệu này, tuy nhiên, bạn có thể chỉ định một mã hóa khác.

Bạn có thể thay đổi quy tắc mã hóa và/hoặc so sánh cho các giá trị ký tự cho cơ sở dữ liệu bằng lệnh

THAY ĐỔI CƠ SỞ DỮ LIỆU<Имя базы данных>

BỘ NHÂN VẬT<Имя кодировки>

SẮP XẾP<Имя правила сравнения>;

Trong trường hợp này, mã hóa được sử dụng trong các bảng cơ sở dữ liệu hiện có vẫn giữ nguyên; Chỉ có mã hóa mặc định cho các bảng mới được tạo mới thay đổi.

Để xóa cơ sở dữ liệu không cần thiết hoặc được tạo sai, hãy chạy lệnh

THẢ CƠ SỞ DỮ LIỆU<Имя базы данных>;

Chú ý!

Xóa cơ sở dữ liệu là một thao tác rất quan trọng vì nó xóa tất cả các bảng trong cơ sở dữ liệu và dữ liệu được lưu trữ trong các bảng. Trước khi xóa, nên tạo bản sao lưu Cơ sở dữ liệu.

Bạn có thể chọn một trong các cơ sở dữ liệu được tạo trên máy chủ MySQL này làm cơ sở dữ liệu hiện tại bằng lệnh

SỬ DỤNG<Имя базы данных>;

Ví dụ,:

SỬ DỤNG Phòng kinh doanh;

Sau đó, bạn có thể thực hiện các thao tác trên các bảng trong cơ sở dữ liệu đó mà không cần đặt tên cơ sở dữ liệu ở tiền tố bảng. Ví dụ: để truy cập vào bảng Khách hàng trong cơ sở dữ liệu SalesDept, bạn chỉ cần viết Khách hàng thay vì SalesDept.Customers. Bằng cách chỉ định cơ sở dữ liệu hiện tại, bạn có thể truy cập các bảng trong cơ sở dữ liệu khác, nhưng bạn phải sử dụng tên cơ sở dữ liệu làm tiền tố. Việc lựa chọn cơ sở dữ liệu hiện tại được lưu cho đến khi bạn ngắt kết nối khỏi máy chủ hoặc cho đến khi bạn chọn một cơ sở dữ liệu hiện tại khác.

Để xem danh sách tất cả các cơ sở dữ liệu hiện có trên một máy chủ MySQL nhất định, hãy chạy lệnh

HIỂN THỊ CƠ SỞ DỮ LIỆU;

Ngay cả khi chưa tạo bất kỳ cơ sở dữ liệu nào, bạn sẽ thấy ba cơ sở dữ liệu hệ thống trong danh sách kết quả.

THÔNG TIN_SCHema – cơ sở thông tin dữ liệu, từ đó bạn có thể lấy thông tin về tất cả các cơ sở dữ liệu khác, về cấu trúc dữ liệu trong đó và về tất cả các loại đối tượng: bảng, cột, khóa chính và khóa ngoài, quyền truy cập, thủ tục lưu trữ, mã hóa, v.v. Cơ sở dữ liệu này được đọc- chỉ và là ảo, nghĩa là nó không được lưu trữ dưới dạng thư mục trên đĩa: tất cả thông tin được yêu cầu từ cơ sở dữ liệu này đều được máy chủ MySQL cung cấp động.

Mysql là một cơ sở dữ liệu tiện ích được sử dụng bởi máy chủ MySQL. Nó lưu trữ thông tin về người dùng đã đăng ký và quyền truy cập của họ, Tài liệu tham khảo và vân vân.

Kiểm tra là một cơ sở dữ liệu trống có thể được sử dụng để thử mọi thứ hoặc đơn giản là xóa.

Như vậy, bạn đã thành thạo các thao tác cơ bản được thực hiện với toàn bộ cơ sở dữ liệu: các lệnh TẠO CƠ SỞ DỮ LIỆU (tạo), THAY ĐỔI DATABASE (thay đổi), DROP DATABASE (xóa), SỬ DỤNG (chọn cơ sở dữ liệu hiện tại) và HIỂN THỊ CƠ SỞ DỮ LIỆU (xem danh sách của cơ sở dữ liệu). Tiếp theo chúng ta sẽ xem xét các thao tác trên bảng. Trong trường hợp này, chúng tôi sẽ giả định rằng bạn đã chọn cơ sở dữ liệu làm cơ sở dữ liệu hiện tại và đang làm việc với các bảng của nó.

2.3. Làm việc với bảng

Trong phần này, bạn sẽ tìm hiểu cách tạo, sửa đổi và xóa bảng, cách xem thông tin bảng và danh sách tất cả các bảng trong cơ sở dữ liệu hiện tại. Hãy bắt đầu với lệnh khó nhất - tạo bảng.

Tạo một bảng

Để tạo một bảng, hãy chạy lệnh hiển thị trong Liệt kê 2.1.

Liệt kê 2.1. Lệnh tạo bảng

TẠO BẢNG<Имя таблицы>

(<Имя столбца 1> <Тип столбца 1> [<Свойства столбца 1>],

<Имя столбца 2> <Тип столбца 2> [<Свойства столбца 2>],

[<Информация о ключевых столбцах и индексах>])

[<Опциональные свойства таблицы>];


Như bạn có thể thấy, lệnh tạo bảng có thể bao gồm nhiều tham số, nhưng nhiều tham số trong số đó là tùy chọn (trong Liệt kê 2.1, các tham số này được đặt trong dấu ngoặc vuông). Trên thực tế, để tạo một bảng, bạn chỉ cần xác định tên của nó cũng như tên và kiểu của tất cả các cột; các thông số khác được sử dụng nếu cần thiết.

Trước tiên, hãy xem một số ví dụ sẽ giúp bạn thành thạo lệnh CREATE TABLE và ngay lập tức, không cần nghiên cứu nhiều tham số của nó, hãy bắt đầu tạo các bảng (có cấu trúc đơn giản) của riêng bạn.

Giả sử rằng chúng ta đang xây dựng cơ sở dữ liệu mà chúng ta đã thiết kế ở Chương 1. Sử dụng các lệnh từ phần trước, chúng ta đã tạo một cơ sở dữ liệu SalesDept trống và chọn nó làm cơ sở dữ liệu hiện tại. Bây giờ hãy tạo ba bảng: Khách hàng, Sản phẩm và Đơn hàng. Liệt kê 2.2 hiển thị lệnh tạo bảng Khách hàng.

Liệt kê 2.2. Lệnh tạo bảng Khách hàng

TẠO BẢNG Khách hàng

(id SERIAL,

tên VARCHAR(100),

điện thoại VARCHAR(20),

địa chỉ VARCHAR(150),

đánh giá INT,

KHÓA CHÍNH (id))


Lệnh này sử dụng các tham số: thứ nhất là tên của bảng, thứ hai là tên và loại cột mà bảng sẽ bao gồm (xem thêm Bảng 1.1 trong Chương 1).

Id - mã định danh bản ghi. Bạn đã gán loại SERIAL cho cột này, điều này cho phép bạn tự động đánh số các hàng trong bảng. Từ khóa SERIAL là viết tắt của BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. Điều này có nghĩa là các số nguyên lớn (BIGINT) dương (UNSIGNED) có thể được nhập vào cột, đồng thời việc thiếu các giá trị không xác định và trùng lặp (NOT NULL UNIQUE) sẽ tự động được kiểm tra. Nếu khi thêm một hàng vào bảng, bạn không chỉ định giá trị cho cột này thì chương trình MySQL sẽ nhập số thứ tự tiếp theo (AUTO_INCREMENT) vào cột này.

Ghi chú

NULL là hằng số biểu thị sự vắng mặt của một giá trị. Nếu cột chứa giá trị NULL thì được coi là không có giá trị nhất định cột này chưa được đặt (đó là lý do tại sao chúng tôi cũng gọi NULL là giá trị không xác định). Không nên nhầm lẫn NULL với chuỗi trống ("") hoặc số 0. Giá trị NULL được xử lý khác nhau: hầu hết các hàm và toán tử đều trả về NULL nếu một trong các đối số là NULL. Ví dụ: kết quả so sánh 1=1 là giá trị true (TRUE) và kết quả so sánh NULL = NULL là giá trị không xác định (NULL), tức là hai giá trị không xác định không được coi là bằng nhau.

Nam là tên khách hàng, điện thoại là số điện thoại và địa chỉ là địa chỉ. Bạn đã gán loại VARCHAR cho các cột này vì chúng sẽ chứa các giá trị ký tự. Giá trị lớn nhất số lượng cho phép các ký tự trong giá trị cột.

Thứ ba, bạn đã chỉ định rằng cột id sẽ là khóa chính của bảng bằng cách đưa mệnh đề PRIMARY KEY (id) vào lệnh tạo bảng.

Thứ tư, bạn đã chỉ định hai tham số tùy chọn cho bảng này. Tham số ENGINE chỉ định loại bảng. Bạn đã gán loại InnoDB cho bảng Khách hàng vì chỉ loại này mới đảm bảo duy trì tính toàn vẹn của mối quan hệ giữa các bảng (chi tiết hơn về các loại bảng sẽ được thảo luận trong phần “Thuộc tính bảng tùy chọn”). Tham số CHARACTER SET chỉ định mã hóa mặc định cho dữ liệu trong bảng. Vì bạn không đặt mã hóa riêng cho các cột tên, số điện thoại và địa chỉ nên dữ liệu trong các cột này sẽ được lưu dưới dạng UTF-8, đây là mã hóa mặc định cho bảng Khách hàng.

Ví dụ tiếp theo chúng ta sẽ xem xét là lệnh tạo bảng Sản phẩm được hiển thị trong Liệt kê 2.3.

Liệt kê 2.3. Lệnh tạo bảng sản phẩm

TẠO BẢNG Sản phẩm

(id SERIAL,

mô tả VARCHAR(100),

chi tiết VĂN BẢN,

giá DECIMAL(8,2),

KHÓA CHÍNH (id))

BỘ NHÂN VẬT ĐỘNG CƠ InnoDB utf8;


Lệnh này rất giống với lệnh tạo bảng Khách hàng và chỉ khác ở tên bảng và tập hợp các cột. Các cột id (số sản phẩm) và mô tả (tên sản phẩm) của bảng Sản phẩm có các loại đã quen thuộc với chúng ta. Cột chi tiết có kiểu TEXT. Loại này thuận tiện để sử dụng thay vì loại VARCHAR nếu cột sẽ chứa các giá trị dài: tổng độ dài các giá trị của tất cả các cột VARCHAR được giới hạn ở 65.535 byte cho mỗi bảng và không có giới hạn về tổng độ dài của các cột TEXT. Nhược điểm của loại TEXT là không có khả năng bao gồm các cột như vậy trong khóa ngoại của bảng, nghĩa là tạo mối quan hệ giữa các bảng dựa trên các cột này.

Cột giá thuộc loại DECIMAL, được thiết kế để lưu trữ số tiền và các giá trị khác mà điều quan trọng là tránh lỗi làm tròn. Chúng tôi đã chỉ ra hai số trong ngoặc: số đầu tiên xác định số tiền tối đa chữ số trong giá trị cột, số thứ hai là số chữ số tối đa sau dấu phân cách thập phân. Nói cách khác, giá của một sản phẩm có thể chứa tối đa sáu chữ số ở phần nguyên (6 = 8–2) và tối đa hai chữ số ở phần phân số.

Và cuối cùng, ví dụ cuối cùng là lệnh tạo bảng Đơn hàng, được hiển thị trong Liệt kê 2.4.

Liệt kê 2.4. Lệnh tạo bảng đơn hàng

TẠO BẢNG ĐƠN HÀNG

(id SERIAL,

ngày NGÀY,

sản phẩm_id BIGINT KHÔNG ĐƯỢC KÝ KHÔNG NULL,

qty INT KHÔNG ĐƯỢC KÝ,

số DECIMAL(10,2),

customer_id BIGINT CHƯA ĐƯỢC KÝ,

KHÓA CHÍNH (id),

KHÓA NGOÀI (product_id) THAM KHẢO Sản phẩm (id)

VỀ HẠN CHẾ XÓA TRÊN CẬP NHẬT CASCADE,

KHÓA NGOÀI (customer_id) THAM KHẢO Khách hàng (id)

BẬT HẠN CHẾ XÓA TRÊN CẬP NHẬT CASCADE)

BỘ NHÂN VẬT ĐỘNG CƠ InnoDB utf8;


Một tính năng đặc biệt của bảng Đơn hàng là sự hiện diện của khóa ngoại: cột sản phẩm_id chứa số sản phẩm từ bảng Sản phẩm và cột customer_id chứa mã số khách hàng từ bảng Khách hàng (xem thêm Bảng 1.2 trong Chương 1). Bởi vì số lượng sản phẩm và khách hàng là số nguyên dương lớn nên chúng tôi đã gán cột sản phẩm_id và customer_id để nhập BIGINT UNSIGNED.

Tiếp theo, để đảm bảo rằng tính toàn vẹn của các mối quan hệ được duy trì tự động (chúng ta đã nói về tính toàn vẹn trong Chương 1), chúng tôi đã cho MySQL biết khóa chính mà mỗi khóa ngoại tương ứng với. Do đó, việc xây dựng FOREIGN KEY (customer_id) TÀI LIỆU THAM KHẢO Khách hàng (id) có nghĩa là cột customer_id chỉ có thể chứa các giá trị từ cột id của bảng Khách hàng và các giá trị null, đồng thời các giá trị khác đều bị cấm. Đối với cột Product_id, chúng tôi đặt ràng buộc tương tự và gán thuộc tính NOT NULL cho cột này để ngăn việc đăng ký đơn hàng với sản phẩm không xác định. Ngoài ra, chúng tôi đã chỉ ra các quy tắc để duy trì tính toàn vẹn cho từng kết nối (chúng tôi cũng đã thảo luận về chúng trong Chương 1). Quy tắc BẬT HẠN CHẾ XÓA có nghĩa là bạn không thể xóa hồ sơ khách hàng nếu khách hàng đó có đơn hàng đã đăng ký và bạn không thể xóa hồ sơ sản phẩm nếu sản phẩm đó được ai đó đặt hàng. Quy tắc BẬT CẬP NHẬT CASCADE có nghĩa là khi một mã số khách hàng trong bảng Khách hàng hoặc một mã số mục trong bảng Sản phẩm thay đổi thì những thay đổi tương ứng cũng được thực hiện trong bảng Đơn hàng.

Ghi chú

Lưu ý rằng chúng tôi đã tạo bảng Đơn hàng sau cùng vì các khóa chính trong bảng Khách hàng và Sản phẩm phải được tạo trước các khóa ngoại trong bảng Đơn hàng tham chiếu đến chúng. Tuy nhiên, có thể tạo các bảng không có khóa ngoại theo bất kỳ thứ tự nào, sau đó thêm khóa ngoại bằng lệnh ALTER TABLE mà chúng ta sẽ xem xét trong tiểu mục “Thay đổi cấu trúc bảng”.

Trong các ví dụ của chúng tôi, chúng tôi chỉ xem xét một số tham số của lệnh tạo bảng. Bây giờ chúng tôi sẽ liệt kê tất cả các tham số chính có thể hữu ích cho bạn khi tạo bảng. Trong phần “Các loại dữ liệu trong MySQL”, chúng ta sẽ nói về các loại cột, trong phần “Thuộc tính cột”, chúng ta sẽ nói về việc thiết lập các cột chính và cuối cùng trong phần “Cột chính và chỉ mục” chúng ta sẽ nói về các thuộc tính bảng tùy chọn .

Các kiểu dữ liệu trong MySQL

Như các bạn đã biết, khi tạo bảng, bạn cần chỉ định kiểu dữ liệu cho từng cột. MySQL cung cấp nhiều kiểu dữ liệu để lưu trữ số, ngày/giờ và chuỗi ký tự (văn bản). Ngoài ra, còn có các kiểu dữ liệu để lưu trữ các đối tượng không gian, sẽ không được thảo luận trong cuốn sách này.

Hãy xem xét các loại số dữ liệu.

CHÚT[(<Количествобитов>)].

Một số bit chứa một số bit xác định. Nếu số lượng bit không được chỉ định thì số đó bao gồm một bit.

Một số nguyên trong phạm vi từ -128 đến 127 hoặc (nếu thuộc tính UNSIGNED được chỉ định) 0 đến 255.

BOOL hoặc BOOLEAN.

Chúng là từ đồng nghĩa với kiểu dữ liệu TINYINT(1) (số trong ngoặc đơn là số chữ số cần hiển thị, xem ghi chú bên dưới). Trong trường hợp này, giá trị khác 0 được coi là đúng (TRUE), giá trị 0 được coi là sai (FALSE).

Một số nguyên trong phạm vi từ -32,768 đến 32,767 hoặc (nếu thuộc tính UNSIGNED được chỉ định) 0 đến 65,535.

Một số nguyên trong phạm vi từ -8,388,608 đến 8,388,607 hoặc (nếu thuộc tính UNSIGNED được chỉ định) 0 đến 16,777,215.

INT hoặc INTEGER.

Một số nguyên trong phạm vi từ -2,147,483,648 đến 2,147,483,647 hoặc (nếu thuộc tính UNSIGNED được chỉ định) 0 đến 4,294,967,295.

Một số nguyên trong phạm vi -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807 hoặc (nếu thuộc tính UNSIGNED được chỉ định) từ 0 đến 18,446,744,073 70 9,551,615.

Đồng nghĩa với BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (một số nguyên lớn không dấu chấp nhận các giá trị duy nhất được tăng tự động; không cho phép giá trị NULL). Được sử dụng để thế hệ tự động các giá trị duy nhất trong cột khóa chính. Bạn sẽ tìm thấy mô tả về các thuộc tính UNSIGNED và AUTO_INCREMENT trong tiểu mục này cũng như các thuộc tính NOT NULL và UNIQUE trong phần “Thuộc tính cột”.

Ghi chú

Đối với tất cả các loại dữ liệu số nguyên, ngoại trừ BOOL (BOOLEAN) và SERIAL, bạn có thể chỉ định trong ngoặc đơn số chữ số được hiển thị, được sử dụng cùng với tham số ZEROFILL: nếu số chứa ít chữ số hơn thì khi xuất ra nó sẽ được đệm trên còn lại với số không. Ví dụ: nếu một cột trong bảng được xác định là INT(5) ZEROFILL, thì các giá trị "1234567" và "12345" được hiển thị nguyên trạng và giá trị "123" được hiển thị là "00123". Đối với kiểu dữ liệu BIT, kích thước của số, tức là số bit tối đa được lưu trữ, được biểu thị trong ngoặc đơn.

Khá nhiều dự án Internet sử dụng MySQL DBMS làm nơi lưu trữ cơ sở dữ liệu. Với tất cả những điều này, có các tùy chọn khác để bạn lựa chọn, chẳng hạn như: MS SQL, mSQL, PostrgreSQL, Oracle, v.v., nhưng hầu hết mọi nhà cung cấp dịch vụ lưu trữ đều cung cấp các dịch vụ rất có thể bao gồm khả năng sử dụng cơ sở dữ liệu MySQL. Có thể có nhiều lý do chính đáng cho sự phổ biến này, một trong số đó là sản phẩm có mở nguồn , nói cách khác Mã nguồn mở , mà bất kỳ ai cũng có thể nhận được (có một số đặt trước cho các phiên bản Windows). Cũng có ý kiến ​​cho rằng sự kết hợp giữa PHP/MySQL hoặc Perl/MySQL có thể mang lại kết quả tuyệt vời tốc độ, điều mà trong các trường hợp khác khó đạt được hơn nhiều. Ngoài ra, PHP trong bản dựng tiêu chuẩn của nó có hỗ trợ tích hợp cho MySQL.

Để tạo truy vấn trên máy chủ MySQL, giống như trong hầu hết các DBMS khác, ngôn ngữ được sử dụng SQL. Ngôn ngữ SQL là ngôn ngữ chính để làm việc với cơ sở dữ liệu, nhưng mỗi cơ sở dữ liệu cũng có thể có “phương ngữ” riêng của ngôn ngữ SQL vốn có trong một loại DBMS cụ thể.

Giống như bất kỳ cơ sở dữ liệu nào, có một số tiêu chuẩn nhất định để máy chủ cơ sở dữ liệu hoạt động bình thường. Một truy vấn SQL phức tạp, mất nhiều thời gian để thực thi có thể trở thành một trong những nguyên nhân khiến hệ thống bị chậm. Truy vấn SQL nặng tạo nên tải nặng trên máy chủ MySQL, điều này thường ảnh hưởng đến hiệu suất của toàn bộ hệ thống. Điều này đôi khi có thể cực kỳ quan trọng trên máy chủ “chiến đấu”, khi hệ thống chậm lại có thể gây ra một loạt vấn đề khác.

Những yêu cầu như vậy, theo quy định, nên được thực hiện, nhưng phải làm gì nếu bạn cần xóa một yêu cầu khỏi hàng đợi, do tính phức tạp của nó, đã bị đóng băng.
Có một phương pháp, thường được gọi là giải pháp “vụng về” cho vấn đề này, đó là khởi động lại máy chủ MySQL.

Có một cách khác, thường hợp lý hơn, đó là “giết chết” vấn đề truy vấn MySQL. Việc này có thể được thực hiện thông qua SSH hoặc bằng một số tiện ích, chẳng hạn như phpMyAdmin.

Xóa truy vấn MySQL nặng thông qua SSH:

1. Đăng nhập vào máy chủ qua SSH
2. Thực hiện lệnh:

$ mysql –u NGƯỜI DÙNG –p

Thay vì USER chúng tôi chỉ định người dùng MySQL
3. Nhập mật khẩu từ tài khoản NGƯỜI DÙNG
4. Thực hiện lệnh

Hiển thị danh sách quy trình;

(đừng quên thêm dấu chấm phẩy ở cuối)
5. Tìm ra ID của yêu cầu có vấn đề
6. Thực hiện lệnh

Giết truy vấn 11223

Thay vì 11223, hãy chỉ ra ID của yêu cầu cần xóa.
phpMyAdmin khiến việc này trở nên dễ dàng hơn.

Xóa truy vấn MySQL nặng trong phpMyAdmin:

Hiển thị danh sách quy trình

4. Danh sách yêu cầu xuất hiện, ở yêu cầu mong muốn, nhấp vào liên kết “hoàn thành”

Tôi đã chạy lệnh này:

/etc/init.d/mysql bắt đầu

nhưng tôi thấy lỗi này

LỖI 1045 (28000) Quyền truy cập bị từ chối cho người dùng....

Sau khi tôi thử lệnh này:

/etc/init.d/mysql bắt đầu

Tôi đã nhập mật khẩu của mình và tôi lại thấy lỗi tương tự.

Lệnh tiếp theo:

kết quả:

LỖI 1049 (42000) Cơ sở dữ liệu không xác định "bắt đầu".

Và khi tôi chạy lệnh này:

Dịch vụ Sudo mysql bắt đầu

Sự thành công của máy chủ MySQL đã bắt đầu. Mát mẻ!

Vậy điều gì đã xảy ra với các đội khác? Tại sao chúng lại dẫn đến lỗi?

Liên quan đến "Cách khởi động/dừng máy chủ mysql?"

Hai lệnh đầu tiên không được chạy dưới quyền root, vì vậy đây là hành vi được mong đợi. Bạn phải root để dừng/khởi động mysql.

Sudo /etc/init.d/mysql bắt đầu

nên làm việc. Thật vậy, đối với tôi đó là:

Kojan:~> sudo /etc/init.d/mysql khởi động lại mật khẩu cho chris: Đang dừng máy chủ cơ sở dữ liệu MySQL: mysqld. Khởi động máy chủ cơ sở dữ liệu MySQL: mysqld. Kiểm tra các bảng bị hỏng, không được đóng sạch và cần nâng cấp..

Tôi đã sử dụng khởi động lại thay vì chạy vì nó đã chạy rồi, nhưng hiệu quả vẫn như nhau. Bạn có chắc là mình đã nhập đúng mật khẩu của mình không? 🙂 Bạn đã chỉnh sửa cấu hình sudo của mình để ngăn nó hoạt động chưa?

Cái này..

Sudo /etc/init.d/mysql - root -p bắt đầu

Các đối số là không chính xác. tập lệnh init.d chỉ chấp nhận bắt đầu, dừng hoặc khởi động lại - chỉ một từ cho biết phải làm gì. Bạn không thể đưa ra nhiều đối số như bạn đã cố gắng làm.

Dù sao đi nữa, câu trả lời ngắn gọn là cách bạn thực sự phải làm là cách được đề xuất. service sẽ thay thế tất cả các tập lệnh init.d theo thời gian, vì vậy bạn nên làm quen với việc sử dụng service . Trang bạn link đã 3 năm rồi nên cần muối bỏ bể :)

Nó cũng giúp kiểm tra kỹ xem "mysql" có phải là tên dịch vụ chính xác hay không. Trong trường hợp của tôi đây không phải là trường hợp. Tôi liên tục nhận được phản hồi sau: mysql: dịch vụ không được nhận dạng khi khởi động

Trạng thái dịch vụ mysql

Sau đó tôi đã kiểm tra /etc/init.d và tìm thấy một tập lệnh có tên mysqld trong đó chỉ định tên quy trình: mysqld và prog = mysqld

Sau đó tôi đã làm

Dịch vụ trạng thái mysqld dịch vụ dừng mysqld dịch vụ mysqld bắt đầu

và tất cả đều hoạt động rất tốt.

Đối với Ubuntu 12.10 trở lên:

BẮT ĐẦU MYSQL:

Sudo bắt đầu mysql

KHỞI ĐỘNG LẠI MYSQL:

Sudo khởi động lại mysql # Dịch vụ phải đang chạy

DỪNG MYSQL:

Sudo dừng mysql # Dịch vụ phải đang chạy

Thực ra, tôi gặp một lỗi lạ khi cài đặt mysql-workbench trên máy tính của mình. máy Ubuntu. Sau này, tôi đã cố gắng khởi động dịch vụ mysql bằng lệnh sau:

Dịch vụ khởi động mysql

Vì vậy, tôi nhận được giải pháp là máy chủ MySQL chưa được cài đặt nên tôi đã cài đặt nó và vấn đề của tôi đã được giải quyết. Lệnh cài đặt máy chủ mysql:

Sudo apt-get cài đặt máy chủ mysql

Sau khi cài đặt thành công, khởi động máy chủ MySQL như sau:

Dịch vụ khởi động mysql

Một tập lệnh nhỏ để giải quyết cả hai trường hợp [máy chủ đang chạy/máy chủ ngừng hoạt động]:

#!/bin/bash dịch vụ mysql khởi động lại nếu [ "$?" != "0" ]; sau đó dịch vụ mysql bắt đầu fi

Sau khi cài đặt MySQL trên hệ thống của bạn, chỉ cần làm điều này:

trạng thái mysql dịch vụ $

nếu dịch vụ chỉ thực hiện điều này:

và dừng dịch vụ của tôi rằng: