MySQL - Quản trị

Chạy và tắt MySQL Server

Đầu tiên hãy kiểm tra xem máy chủ MySQL của bạn có đang chạy hay không. Bạn có thể sử dụng lệnh sau để kiểm tra nó:

ps -ef | grep mysqld

Nếu MySql của bạn đang chạy, thì bạn sẽ thấy mysqldquá trình được liệt kê trong kết quả của bạn. Nếu máy chủ không chạy, thì bạn có thể khởi động nó bằng cách 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 máy chủ MySQL đang chạy, thì bạn có thể thực hiện bằng cách sử dụng lệnh sau:

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown
Enter password: ******

Thiết lập tài khoản người dùng MySQL

Để thêm người dùng mới vào MySQL, bạn chỉ cần thêm một mục mới vào user bảng trong cơ sở dữ liệu mysql.

Chương trình sau đây là một ví dụ về việc thêm người dùng mới guest với các đặc quyền CHỌN, CHÈN và CẬP NHẬT 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 người dùng mới, hãy nhớ mã hóa mật khẩu mới bằng hàm PASSWORD () do MySQL cung cấp. Như bạn có thể thấy trong ví dụ trên, mật khẩu mypass được mã hóa thành 6f8c114b58f2ce9e.

Lưu ý tuyên bố FLUSH PRIVILEGES. Điều này yêu cầu máy chủ tải lại các bảng cấp. Nếu bạn không sử dụng nó, thì bạn sẽ không thể kết nối với MySQL bằng tài khoản người dùng mới ít nhất cho đến khi máy chủ được khởi động lại.

Bạn cũng có thể chỉ định các đặc quyền khác cho người dùng mới bằng cách đặt giá trị của các cột sau trong bảng người dùng thành 'Y' khi thực hiện truy vấn CHÈN hoặc bạn có thể cập nhật chúng sau bằng cách sử dụng truy vấn CẬP NHẬT.

  • 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 tài khoản người dùng là sử dụng lệnh GRANT SQL. Ví dụ sau sẽ thêm người dùngzara với mật khẩu zara123 cho một cơ sở dữ liệu cụ thể, được đặt tên 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';

Điều này cũng sẽ tạo một mục nhập trong bảng cơ sở dữ liệu MySQL được gọi là user.

NOTE - MySQL không kết thúc một lệnh cho đến khi bạn đặt dấu chấm phẩy (;) ở cuối lệnh SQL.

Cấu hình tệp /etc/my.cnf

Trong hầu hết các trường hợp, bạn không nên chạm vào tệp này. Theo mặc định, nó sẽ có các mục 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

Tại đây, bạn có thể chỉ định một thư mục khác cho nhật ký lỗi, nếu không, bạn không nên thay đổi bất kỳ mục nhập nào trong bảng này.

Lệnh MySQL quản trị

Dưới đây là danh sách các lệnh MySQL quan trọng mà bạn sẽ dành thời gian để làm việc với cơ sở dữ liệu MySQL -

  • USE Databasename - Điều này sẽ được sử dụng để chọn một cơ sở dữ liệu trong MySQL workarea.

  • SHOW DATABASES - Liệt kê các cơ sở dữ liệu mà MySQL DBMS có thể truy cập được.

  • SHOW TABLES - Hiển thị các bảng trong cơ sở dữ liệu khi một cơ sở dữ liệu đã được chọn bằng lệnh sử dụng.

  • SHOW COLUMNS FROM tablename: Hiển thị các thuộc tính, loại thuộc tính, thông tin chính, liệu NULL có được phép hay không, giá trị mặc định và các thông tin khác cho bảng.

  • SHOW INDEX FROM tablename - Hiển thị thông tin chi tiết của tất cả các chỉ mục trên bảng, bao gồm cả KHÓA CHÍNH.

  • SHOW TABLE STATUS LIKE tablename\G - Báo cáo chi tiết về hiệu suất và thống kê MySQL DBMS.

Trong chương tiếp theo, chúng ta sẽ thảo luận về cách sử dụng Cú pháp PHP trong MySQL.