1. Giới thiệu
1.1 Tổng quan MySQL và Tại sao Dòng lệnh quan trọng
MySQL được sử dụng rộng rãi như một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở. Những lợi ích chính của nó bao gồm quản lý dữ liệu hiệu quả và các thao tác dữ liệu linh hoạt bằng SQL (Structured Query Language). Nó được dùng trong nhiều ứng dụng web và hệ thống doanh nghiệp, và các tính năng mạnh mẽ của nó có thể được khai thác đầy đủ thông qua dòng lệnh MySQL.
1.2 Mục đích của Bài viết này
Bài viết này tập trung vào các thao tác dòng lệnh MySQL và giải thích mọi thứ từ các lệnh cơ bản đến các cách sử dụng nâng cao hơn, bao gồm việc tạo và quản lý cơ sở dữ liệu cũng như cấu hình quyền người dùng. Nó được thiết kế đặc biệt để giúp người mới bắt đầu và người dùng trung cấp xây dựng kỹ năng thực tế để tự tin sử dụng MySQL.
1.3 Đối tượng Hướng dẫn này Dành cho
Hướng dẫn này dành cho người mới bắt đầu đến trung cấp quan tâm đến MySQL. Nó phù hợp cho những người có kiến thức cơ bản về cơ sở dữ liệu và muốn bắt đầu quản lý dữ liệu hoặc xây dựng các ứng dụng web bằng MySQL.
2. Các Lệnh Cơ bản của MySQL
2.1 Kết nối và Ngắt kết nối với Cơ sở dữ liệu
Để truy cập MySQL, trước tiên bạn cần kết nối tới máy chủ cơ sở dữ liệu. Một trong những lệnh thường được sử dụng nhất để đăng nhập vào máy chủ MySQL là mysql -u root -p. Khi bạn chạy lệnh này, client MySQL sẽ khởi động và cố gắng đăng nhập dưới tên người dùng đã chỉ định (trong trường hợp này là root).
mysql -u root -p
Sau khi nhập lệnh này, bạn sẽ được yêu cầu nhập mật khẩu. Nếu bạn nhập đúng mật khẩu, bạn sẽ có thể truy cập vào dòng lệnh MySQL.
Để ngắt kết nối, sử dụng lệnh exit hoặc quit.
exit
Lệnh này sẽ đăng xuất bạn khỏi máy chủ MySQL và trả về dấu nhắc lệnh.
2.2 Tạo và Liệt kê Cơ sở dữ liệu
Để tạo một cơ sở dữ liệu mới, sử dụng lệnh CREATE DATABASE. Ví dụ sau tạo một cơ sở dữ liệu có tên mysqldemo.
CREATE DATABASE mysqldemo;
Sau khi chạy lệnh, bạn sẽ thấy thông báo “Query OK”, xác nhận rằng cơ sở dữ liệu đã được tạo thành công.
Để hiển thị danh sách các cơ sở dữ liệu bạn đã tạo, sử dụng lệnh SHOW DATABASES.
SHOW DATABASES;
Lệnh này hiển thị danh sách tất cả các cơ sở dữ liệu hiện có trên máy chủ.
2.3 Chọn Cơ sở dữ liệu
Nếu có nhiều cơ sở dữ liệu, bạn cần chỉ định cơ sở dữ liệu nào muốn làm việc. Bằng cách sử dụng lệnh USE, bạn có thể chọn cơ sở dữ liệu muốn thao tác.
USE mysqldemo;
Lệnh này đặt mysqldemo làm cơ sở dữ liệu hiện tại, và mọi lệnh tiếp theo sẽ được thực thi trên cơ sở dữ liệu này. 
3. Các Lệnh Cơ bản cho Bảng
3.1 Tạo Bảng
Để lưu trữ dữ liệu trong cơ sở dữ liệu, trước tiên bạn cần tạo một bảng. Sử dụng lệnh CREATE TABLE để tạo một bảng mới. Ví dụ, nếu bạn muốn tạo một bảng có tên users, viết lệnh như sau.
CREATE TABLE users (
id INT AUTO_INCREMENT,
name VARCHAR(255),
email VARCHAR(255),
PRIMARY KEY (id)
);
Lệnh này định nghĩa ba cột (id, name, và email) trong bảng users. Cột id là kiểu số nguyên với tính năng tự tăng (AUTO_INCREMENT) được bật và được chỉ định là khóa chính (PRIMARY KEY).
3.2 Liệt kê Các Bảng
Sau khi tạo các bảng, bạn có thể kiểm tra danh sách các bảng trong cơ sở dữ liệu. Bằng cách sử dụng lệnh SHOW TABLES, bạn có thể hiển thị tất cả các bảng trong cơ sở dữ liệu hiện đang được chọn.
SHOW TABLES;
Thêm vào đó, nếu bạn muốn kiểm tra cấu trúc của một bảng cụ thể, sử dụng lệnh DESCRIBE. Lệnh này hiển thị thông tin về các cột và kiểu dữ liệu trong bảng.
DESCRIBE users;
Lệnh này liệt kê các kiểu dữ liệu và thuộc tính (như cho phép NULL hay không, cài đặt khóa, v.v.) cho mỗi cột trong bảng users.
3.3 Chèn và Xem Dữ liệu
Để thêm dữ liệu vào một bảng, sử dụng lệnh INSERT INTO. Ví dụ, để thêm một người dùng mới, thực hiện như sau.
INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
Lệnh này chèn một bản ghi mới vào bảng users và lưu các giá trị được chỉ định vào các cột name và email.
Để xem dữ liệu đã chèn, sử dụng lệnh SELECT. Để hiển thị tất cả người dùng, sử dụng đoạn sau.
SELECT * FROM users;
Điều này hiển thị danh sách tất cả các bản ghi trong bảng users.
4. Quản lý người dùng và bảo mật
4.1 Tạo người dùng và thiết lập quyền
Trong MySQL, việc tạo người dùng có thể truy cập cơ sở dữ liệu và cấp cho họ các quyền thích hợp là rất quan trọng. Để tạo người dùng, sử dụng lệnh CREATE USER. Trong ví dụ sau, một người dùng mới user1 được tạo cho localhost với mật khẩu được đặt là password123.
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password123';
Lệnh này tạo một người dùng mới có tên user1, và người dùng này chỉ có thể kết nối từ máy chủ cục bộ.
Để cấp quyền cho người dùng đã tạo, sử dụng lệnh GRANT. Ví dụ, để cấp tất cả các quyền trên cơ sở dữ liệu mysqldemo cho user1, sử dụng đoạn sau.
GRANT ALL PRIVILEGES ON mysqldemo.* TO 'user1'@'localhost';
Lệnh này cấp cho user1 toàn bộ quyền trên tất cả các bảng trong cơ sở dữ liệu mysqldemo. Để áp dụng các thay đổi quyền vào hệ thống, chạy lệnh FLUSH PRIVILEGES.
FLUSH PRIVILEGES;
4.2 Thay đổi mật khẩu
Để thay đổi mật khẩu của một người dùng hiện có, sử dụng lệnh UPDATE để cập nhật bảng user trong cơ sở dữ liệu mysql. Ví dụ sau thay đổi mật khẩu cho người dùng root thành một mật khẩu mới.
UPDATE mysql.user SET authentication_string = PASSWORD('newpassword') WHERE User = 'root';
FLUSH PRIVILEGES;
Điều này thay đổi mật khẩu của người dùng root thành newpassword. Bằng cách chạy FLUSH PRIVILEGES, thay đổi sẽ được áp dụng vào hệ thống.
4.3 Các thực hành tốt nhất để tăng cường bảo mật
Để cải thiện bảo mật MySQL, việc tuân thủ các thực hành tốt nhất sau là rất quan trọng.
- Xóa các người dùng ẩn danh không cần thiết : Xóa các người dùng ẩn danh mặc định để chỉ những người dùng đã xác thực mới có thể truy cập cơ sở dữ liệu.
- Vô hiệu hoá đăng nhập root từ xa : Để bảo mật tốt hơn, vô hiệu hoá việc đăng nhập của người dùng
roottừ các máy chủ từ xa. - Sử dụng mật khẩu mạnh : Sử dụng mật khẩu mạnh, khó đoán và thay đổi chúng thường xuyên.
Bằng cách thực hiện các biện pháp này, bạn có thể cải thiện bảo mật cơ sở dữ liệu và ngăn ngừa việc truy cập trái phép tiềm năng.

5. Các lệnh MySQL nâng cao
5.1 Cập nhật và xóa dữ liệu
Để cập nhật dữ liệu trong một bảng, sử dụng lệnh UPDATE. Ví dụ, nếu bạn muốn cập nhật cột name trong bảng users, thực hiện như sau.
UPDATE users SET name = 'Jane Doe' WHERE id = 1;
Lệnh này thay đổi giá trị của cột name thành Jane Doe cho bản ghi có id là 1. Hãy cẩn thận: nếu bạn bỏ qua mệnh đề WHERE, tất cả các bản ghi trong bảng sẽ bị cập nhật.
Để xóa dữ liệu, sử dụng lệnh DELETE. Ví dụ, để xóa bản ghi có id là 1, sử dụng đoạn sau.
DELETE FROM users WHERE id = 1;
Điều này xóa bản ghi có id bằng 1 khỏi bảng users.
5.2 Sao lưu và khôi phục
Để tạo bản sao lưu cơ sở dữ liệu, sử dụng lệnh mysqldump. Lệnh này xuất toàn bộ cơ sở dữ liệu và lưu dưới dạng tệp SQL. Ví dụ, để sao lưu cơ sở dữ liệu mysqldemo, sử dụng đoạn sau.
mysqldump -u root -p mysqldemo > mysqldemo_backup.sql
Để khôi phục (phục hồi) một cơ sở dữ liệu, sử dụng lệnh source. Ví dụ sau khôi phục cơ sở dữ liệu từ tệp mysqldemo_backup.sql.
mysql -u root -p mysqldemo < mysqldemo_backup.sql
Lệnh này nhập nội dung của mysqldemo_backup.sql vào cơ sở dữ liệu mysqldemo.
5.3 Khởi động và dừng máy chủ
Để khởi động máy chủ MySQL từ dòng lệnh, sử dụng lệnh mysqld. Ví dụ, trong môi trường Windows, bạn có thể chạy đoạn sau.
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld"
Để dừng máy chủ, sử dụng lệnh mysqladmin.
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqladmin" -u root -p shutdown
Điều này dừng máy chủ MySQL một cách đúng đắn. Việc khởi động và dừng từ dòng lệnh đặc biệt hữu ích trong các môi trường không có công cụ GUI.
6. Khắc phục sự cố
6.1 Các lỗi phổ biến và cách khắc phục chúng
Một lỗi phổ biến xảy ra khi sử dụng MySQL là lỗi “Access denied for user”. Điều này xảy ra khi tên người dùng hoặc mật khẩu được chỉ định không chính xác. Để khắc phục, kiểm tra lại tên người dùng và mật khẩu và thử đăng nhập lại với thông tin xác thực đúng.
Lỗi khác, “Unknown database”, xuất hiện khi cơ sở dữ liệu được chỉ định không tồn tại. Sử dụng lệnh SHOW DATABASES để xác nhận xem cơ sở dữ liệu có tồn tại không, và tạo nó nếu cần thiết.
SHOW DATABASES;
CREATE DATABASE db_name;
6.2 Mẹo và các biện pháp phòng ngừa cho các hoạt động cơ sở dữ liệu
Khi vận hành một cơ sở dữ liệu, bạn nên chú ý đến các điểm sau.
- Sao lưu : Trước khi thực hiện các hoạt động cơ sở dữ liệu, luôn tạo bản sao lưu. Điều này cho phép bạn khôi phục dữ liệu nếu vô tình xóa thứ gì đó.
- Sử dụng giao dịch : Khi thực thi nhiều truy vấn như một hoạt động duy nhất, sử dụng giao dịch để duy trì tính toàn vẹn dữ liệu. Để sử dụng giao dịch, chạy
START TRANSACTION,COMMIT, vàROLLBACK. - Chỉ định điều kiện chính xác : Khi sử dụng
UPDATEhoặcDELETE, điều quan trọng là chỉ định mệnh đềWHEREmột cách đúng đắn. Điều này giúp ngăn chặn các cập nhật hoặc xóa không mong muốn.
Bằng cách ghi nhớ những biện pháp phòng ngừa này, bạn có thể ngăn chặn các vấn đề MySQL trước và vận hành cơ sở dữ liệu một cách an toàn.
7. Kết luận
Dòng lệnh MySQL là một công cụ mạnh mẽ để thực hiện hiệu quả mọi thứ từ quản lý cơ sở dữ liệu cơ bản đến các hoạt động nâng cao. Trong bài viết này, chúng tôi đã đề cập đến các lệnh MySQL thiết yếu, bao gồm tạo cơ sở dữ liệu, làm việc với bảng, quản lý người dùng, và cập nhật hoặc xóa dữ liệu.
Trong thế giới cơ sở dữ liệu, bảo mật và tính toàn vẹn dữ liệu cực kỳ quan trọng. Vì lý do đó, cần tuân theo các thực hành tốt nhất như cấu hình quyền người dùng, quản lý mật khẩu đúng cách, và thực hiện sao lưu định kỳ. Ngoài ra, kiến thức khắc phục sự cố giúp bạn phản ứng nhanh chóng khi vấn đề xảy ra.
Bằng cách làm chủ các lệnh MySQL, bạn có thể vận hành cơ sở dữ liệu hiệu quả và an toàn hơn. Hãy tiếp tục thực hành và áp dụng những gì bạn đã học để tự tin trong các hoạt động cơ sở dữ liệu an toàn và hiệu quả.


