MySQLi - Quản trị
Chạy và tắt Máy chủ MySQLi
MySQLi là phần mở rộng của MySQL vì vậy trước 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 điều này:
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 MySQLi
Để thêm người dùng mới vào MySQLi Đây là phiên bản cải tiến của 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.
Dưới đây là 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 gọi 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
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 MySQLi quản trị
Đây là danh sách các lệnh MySQLi quan trọng mà bạn sẽ sử dụng 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 cụ thể trong MySQLi workarea.
SHOW DATABASES - Liệt kê các cơ sở dữ liệu mà MySQLi 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à thông tin khác cho một 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ê MySQLi DBMS.