- Giới thiệu
- MySQL là gì
- Cài đặt
- Quản lý
- Cú pháp MySQL-PHP
- Kết nối MySQL
- Tạo Database
- Xóa Database
- Chọn cơ sở dữ liệu
- Kiểu dữ liệu
- Tạo bảng
- Xóa bảng
- Truy vấn Insert
- Truy vấn Select
- Mệnh đề Where
- Truy vấn Update
- Truy vấn Delete
- Mệnh đề Like
- Mệnh đề Order By
- Sử dụng Join
- Giá trị NULL
- Regexp trong MySQL
- Transaction trong MySQL
- Lệnh Alter
- Chỉ mục (Index)
- Bảng tạm (Temporary Table)
- Mô phỏng bảng
- Thông tin Database
- Sử dụng Sequence
- Xử lý bản sao
- SQL Injection
- Export và Sao lưu (Backup)
- Import và Phục hồi (Recovery)
- Mệnh đề Group By
- Mệnh đề In
- Mệnh đề Between
- Từ khóa Union
- Hàm hữu ích
- Tài liệu tham khảo
- Học SQL cơ bản và nâng cao
- Học PHP cơ bản và nâng cao
Quản lý MySQL
Chạy và tắt MySQL Server
Đầu tiên, để kiểm tra xem MySQL Server là đang chạy hay không, bạn có thể sử dụng lệnh sau:
ps -ef | grep mysqld
Nếu MySQL đang chạy, thì bạn sẽ thấy tiến trình mysqld được liệt kê trong kết quả. Nếu Server không chạy, thì bạn có thể khởi động nó bởi sử dụng lệnh sau:
root@host# cd /usr/bin ./safe_mysqld &
Bây giờ, nếu bạn muốn tắt một MySQL Server đang chạy, bạn sử dụng lệnh sau:
root@host# cd /usr/bin ./mysqladmin -u root -p shutdown Enter password: ******
Thiết lập một MySQL User Account
Để thêm một người dùng mới cho MySQL, bạn chỉ cần thêm một entry mới cho bảng user trong Database mysql.
Ví dụ dưới đây sẽ thêm một người dùng mới guest với quyền SELECT, INSERT, và UPDATE với mật khẩu guest123, truy vấn SQL là:
root@host# mysql -u root -p Enter password:******* mysql> use mysql; Database changed mysql> INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y'); Query OK, 1 row affected (0.20 sec) mysql> FLUSH PRIVILEGES; Query OK, 1 row affected (0.01 sec) mysql> SELECT host, user, password FROM user WHERE user = 'guest'; +-----------+---------+------------------+ | host | user | password | +-----------+---------+------------------+ | localhost | guest | 6f8c114b58f2ce9e | +-----------+---------+------------------+ 1 row in set (0.00 sec)
Khi thêm một người dùng mới, bạn nhớ mật mã hóa mật khẩu mới bởi sử dụng hàm PASSWORD() được cung cấp bởi MySQL. Như bạn có thể thấy trong ví dụ trên, mật khẩu mypass được mật mã hóa là:
Chú ý lệnh FLUSH PRIVILEGES. Lệnh này nói cho Server để nạp lại các bảng. Nếu bạn không sử dụng lệnh này, thì bạn sẽ không thể kết nối tới mysql với tài khoản mới này, ít nhất tới khi Server được reboot.
Bạn cũng có thể xác định privileges khác cho một người dùng mới bằng việc thiết lập các giá trị của cột sau trong bảng user cho 'Y' khi thực thị truy vấn INSERT hoặc bạn có thể cập nhật chúng sau khi sử dụng truy vấn UPDATE.
Select_priv
Insert_priv
Update_priv
Delete_priv
Create_priv
Drop_priv
Reload_priv
Shutdown_priv
Process_priv
File_priv
Grant_priv
References_priv
Index_priv
Alter_priv
Một cách khác để thêm user account là bằng cách sử dụng lệnh GRANT SQL. Ví dụ sau sẽ thêm người dùng zara với mật khẩu zara123 cho một cơ sở dữ liệu cụ thể là TUTORIALS.
root@host# mysql -u root -p password; Enter password:******* mysql> use mysql; Database changed mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON TUTORIALS.* -> TO 'zara'@'localhost' -> IDENTIFIED BY 'zara123';
Ví dụ này cũng sẽ tạo một entry trong bảng dữ liệu gọi là user.
GHI CHÚ: MySQL không kết thúc một lệnh tới khi bạn cung cấp một dấu chấm phảy (;) tại phần cuối của lệnh SQL.
Cấu hình /etc/my.cnf File
Trong hầu hết các tình huống, bạn không nên động đến file này. Theo mặc định, nó sẽ có các entry sau:
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock [mysql.server] user=mysql basedir=/var/lib [safe_mysqld] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
Ở đây, bạn có thể xác định một thư mục khác cho error log, nếu không, bạn không nên thay đổi bất cứ entry nào trong bảng này.
Các lệnh MySQL thường sử dụng
Dưới đây là danh sách các lệnh MySQL quan trọng mà bạn sẽ thường xuyên sử dụng trong khi làm việc với MySQL Database:
USE Databasename: Lệnh này được sử dụng để chọn một cơ sở dữ liệu cụ thể trong khu vực làm việc.
SHOW DATABASES: Lệnh này liệt kê các Database mà là có thể truy cập bởi MySQL DBMS.
SHOW TABLES: Hiển thị các bảng trong cơ sở dữ liệu một khi một cơ sở dữ liệu đã được lựa chọn với lệnh USE.
SHOW COLUMNS FROM tablename: Hiển thị các thuộc tính, kiểu của thuộc tính, thông tin key, có hay không cho phép NULL, các mặc định, và thông tin khác cho một bảng.
SHOW INDEX FROM tablename: Hiển thị chi tiết tất cả chỉ mục trên bảng, bao gồm PRIMARY KEY.
SHOW TABLE STATUS LIKE tablename\G: Báo cáo chi tiết hiệu suất và thống kê MySQL DBMS.
Các bài học MySQL phổ biến khác tại AZCode: