Các lệnh cơ bản quản trị database MySQL/MariaDB

mysqladmin là dòng lệnh quản trị cơ sở dữ liệu đi kèm với MySQL/MariaDB, được quản trị viên sử dụng để thực hiện một số tác vụ MySQL cơ bản như đặt mật khẩu root, thay đổi mật khẩu root, giám sát các tiến trình mysql, reloading privileges, tạo / xóa cơ sở dữ liệu, kiểm tra trạng thái, hiển thị thống kê sử dụng, loại bỏ các truy vấn đang chạy, v.v.

Lệnh sử dụng mysqladmin và cú pháp chung là:

# mysqladmin [options] command [command-arg] [command [command-arg]] ...

Trong bài viết này, mình xin giới thiệu một số lệnh ‘mysqladmin‘hữu ích được quản trị viên hệ thống / cơ sở dữ liệu sử dụng trong công việc hàng ngày. Bạn phải cài đặt MySQL/MariaDB trên server của mình để thực hiện các tác vụ này.

1. Cài đặt mật khẩu root MySQL

Nếu bạn cài đặt mới MySQL/MariaDB, thì nó không yêu cầu bất kỳ mật khẩu nào để truy cập với tư cách là user root. Để đặt mật khẩu MySQL cho user root, sử dụng lệnh sau.

# mysqladmin -u root password YOURNEWPASSWORD
2. Thay đổi mật khẩu root MySQL

Nếu bạn muốn thay đổi hoặc cập nhật mật khẩu root MySQL, bạn cần nhập lệnh sau. Ví dụ: giả sử mật khẩu cũ của bạn là 123456 và bạn muốn thay đổi mật khẩu đó bằng mật khẩu mới abcxyz123.

# mysqladmin -u root -p123456 password 'abcxyz123'
3. Kiểm tra trạng thái hoạt động

Để kiểm tra MySQL có đang hoạt động hay không, hãy sử dụng lệnh sau.

# mysqladmin -u root -p ping

Enter password:
mysqld is alive
4. Kiểm tra version MySQL đang chạy

Lệnh sau hiển thị phiên bản MySQL cùng với trạng thái đang chạy hiện tại.

# mysqladmin -u root -p version

Enter password: 
mysqladmin  Ver 9.1 Distrib 10.3.32-MariaDB, for Linux on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab, and others.

Server version		10.3.32-MariaDB
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			18 min 6 sec

Threads: 6  Questions: 20  Slow queries: 0  Opens: 18  Flush tables: 1  
Open tables: 11  Queries per second avg: 0.018
5. Xem tình trạng hoạt động hiện tại của MySQL

Để kiểm tra trạng thái hoạt động hiện tại của MySQL, hãy sử dụng lệnh sau. Lệnh mysqladmin hiển thị trạng thái thời gian hoạt động với các luồng và truy vấn đang chạy.

# mysqladmin -u root -p status

Enter password: 
Uptime: 1185  Threads: 6  Questions: 21  Slow queries: 0  Opens: 18  Flush tables: 1
Open tables: 11  Queries per second avg: 0.017
6. Kiểm tra các biến trạng thái MySQL và giá trị của chúng

Để kiểm tra tất cả trạng thái đang chạy của các biến và giá trị máy chủ MySQL, hãy nhập lệnh sau. Đầu ra sẽ tương tự như bên dưới.

# mysqladmin -u root -p extended-status

Enter password: 
+--------------------------------------------------------------+
| Variable_name                          | Value               |
+--------------------------------------------------------------+
| Aborted_clients                        | 0                   |
| Aborted_connects                       | 2                   |
| Access_denied_errors                   | 2                   |
| Acl_column_grants                      | 0                   |
| Acl_database_grants                    | 0                   |
| Acl_function_grants                    | 0                   |
| Acl_procedure_grants                   | 0                   |
| Acl_package_spec_grants                | 0                   |
| Acl_package_body_grants                | 0                   |
| Acl_proxy_users                        | 2                   |
| Acl_role_grants                        | 0                   |
| Acl_roles                              | 0                   |
| Acl_table_grants                       | 0                   |
| Acl_users                              | 4                   |
| Aria_pagecache_blocks_not_flushed      | 0                   |
| Aria_pagecache_blocks_unused           | 15706               |
| Aria_pagecache_blocks_used             | 0                   |
| Aria_pagecache_read_requests           | 0                   |
| Aria_pagecache_reads                   | 0                   |
| Aria_pagecache_write_requests          | 0                   |
7. Làm thế nào để xem tất cả các Biến và Giá trị của máy chủ MySQL?

Để kiểm tra tất cả trạng thái đang chạy của các biến và giá trị máy chủ MySQL, hãy nhập lệnh sau. Đầu ra sẽ tương tự như bên dưới.

# mysqladmin  -u root -p variables

Enter password:
+--------------------------------------------+-----------------------------+
| Variable_name                              | Value                       |
+--------------------------------------------+-----------------------------+
| auto_increment_increment                   | 1                           |
| auto_increment_offset                      | 1                           |
| autocommit                                 | ON                          |
| automatic_sp_privileges                    | ON                          |
| back_log                                   | 50                          |
| basedir                                    | /usr                        |
| big_tables                                 | OFF                         |
| binlog_cache_size                          | 32768                       |
| binlog_direct_non_transactional_updates    | OFF                         |
| binlog_format                              | STATEMENT                   |
| binlog_stmt_cache_size                     | 32768                       |
| bulk_insert_buffer_size                    | 8388608                     |
| character_set_client                       | latin1                      |
| character_set_connection                   | latin1                      |
| character_set_database                     | latin1                      |
| character_set_filesystem                   | binary                      |
| character_set_results                      | latin1                      |
| character_set_server                       | latin1                      |
| character_set_system                       | utf8                        |
| character_sets_dir                         | /usr/share/mysql/charsets/  |
| collation_connection                       | latin1_swedish_ci           |
+---------------------------------------------------+----------------------+
8. Cách kiểm tra Active Threads của MySQL Server

Lệnh sau sẽ hiển thị tất cả các tiến trình đang chạy của các truy vấn cơ sở dữ liệu MySQL.

# mysqladmin -u root -p processlist

Enter password: 
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
| Id | User        | Host      | db | Command | Time | State                    | Info             | Progress |
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
| 2  | system user |           |    | Daemon  |      | InnoDB purge coordinator |                  | 0.000    |
| 1  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 4  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 3  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 5  | system user |           |    | Daemon  |      | InnoDB shutdown handler  |                  | 0.000    |
| 20 | root        | localhost |    | Query   | 0    | Init                     | show processlist | 0.000    |
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
9. Tạo mới cơ sở dữ liệu MySQL

Để tạo cơ sở dữ liệu mới trong máy chủ MySQL, hãy sử dụng lệnh hiển thị bên dưới.

# mysqladmin -u root -p create tradacongnghe
Enter password: 

# mysql -u root -p

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 22
Server version: 10.3.32-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab, and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| tradacongnghe|
+--------------------+
4 rows in set (0.001 sec)
10. Xóa cơ sở dữ liệu MySQL

Để xóa Cơ sở dữ liệu trong máy chủ MySQL, hãy sử dụng lệnh sau. Bạn sẽ được yêu cầu xác nhận nhấn ‘y‘.

# mysqladmin -u root -p drop tradacongnghe

Enter password: 
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the 'tecmint' database [y/N] y
Database "tecmint" dropped
11. Reload/Refresh MySQL Privileges?
# mysqladmin -u root -p reload
# mysqladmin -u root -p refresh
12. Cách 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 nhập lệnh sau.

mysqladmin -u root -p shutdown

Enter password:

Bạn cũng có thể sử dụng các lệnh sau để start /stop MySQL server.

# systemctl stop mysqld
# systemctl start mysqld
Or
# systemctl stop mariadb
# systemctl start mariadb
13. Một số lệnh MySQL Flush

Sau đây là một số lệnh flush hữu ích với mô tả của chúng.

  • flush-hosts: Xóa tất cả thông tin máy chủ khỏi bộ nhớ cache của máy chủ.
  • flush-table: Làm sạch tất cả các bảng.
  • flush-thread: Xóa tất cả bộ nhớ cache của các chủ đề.
  • flush-logs: Xóa tất cả các bản ghi thông tin.
  • flush-privileges: Tải lại các bảng cấp (giống như tải lại).
  • flush-status: Xóa các biến trạng thái.
# mysqladmin -u root -p flush-hosts
# mysqladmin -u root -p flush-tables
# mysqladmin -u root -p flush-threads
# mysqladmin -u root -p flush-logs
# mysqladmin -u root -p flush-privileges
# mysqladmin -u root -p flush-status
14. Làm thế nào để kill process MySQL Client đang ngủ?

Sử dụng lệnh sau để xác định process MySQL Client đang ngủ.

# mysqladmin -u root -p processlist

Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 5  | root | localhost |    | Sleep   | 14   |       |			 |
| 8  | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

Bây giờ, hãy chạy lệnh sau với kill và process ID như hình dưới đây.

# mysqladmin -u root -p kill 5

Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 12 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

Nếu bạn muốn hủy nhiều process, hãy chuyển các id process bằng dấu phẩy được phân tách như hình dưới đây.

# mysqladmin -u root -p kill 5,10
15. Cách chạy nhiều lệnh mysqladmin cùng nhau

Nếu bạn muốn thực hiện nhiều lệnh ‘mysqladmin‘ cùng nhau, thì lệnh sẽ như thế này.

# mysqladmin  -u root -p processlist status version

Enter password: 
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
| Id | User        | Host      | db | Command | Time | State                    | Info             | Progress |
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
| 1  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 2  | system user |           |    | Daemon  |      | InnoDB purge coordinator |                  | 0.000    |
| 4  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 3  | system user |           |    | Daemon  |      | InnoDB purge worker      |                  | 0.000    |
| 5  | system user |           |    | Daemon  |      | InnoDB shutdown handler  |                  | 0.000    |
| 9  | root        | localhost |    | Query   | 0    | Init                     | show processlist | 0.000    |
+----+-------------+-----------+----+---------+------+--------------------------+------------------+----------+
Uptime: 173  Threads: 6  Questions: 4  Slow queries: 0  Opens: 18  Flush tables: 1  Open tables: 11  Queries per second avg: 0.023
mysqladmin  Ver 9.1 Distrib 10.3.32-MariaDB, for Linux on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab, and others.

Server version		10.3.32-MariaDB
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			2 min 53 sec

Threads: 6  Questions: 4  Slow queries: 0  Opens: 18  Flush tables: 1  Open tables: 11  Queries per second avg: 0.023
16. Cách kết nố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 (host) với Địa chỉ IP của máy từ xa.

# mysqladmin -h 172.16.25.126 -u root -p
17. Cách thực thi lệnh trên máy chủ MySQL từ xa

Giả sử bạn muốn xem trạng thái của máy chủ MySQL từ xa, thì lệnh sẽ như vậy.

# mysqladmin -h 172.16.25.126 -u root -p status
18. Cách Start/Stop Replication MySQL trên Server Slave
# mysqladmin  -u root -p start-slave
# mysqladmin  -u root -p stop-slave
19. Cách lưu trữ thông tin gỡ lỗi máy chủ MySQL vào logs
# mysqladmin  -u root -p debug

Enter password:
20. Cách xem các tùy chọn và cách sử dụng mysqladmin

Để tìm hiểu thêm các tùy chọn và cách sử dụng lệnh myslqadmin, hãy sử dụng lệnh trợ giúp như hình dưới đây. Nó sẽ hiển thị một danh sách các tùy chọn có sẵn.

# mysqladmin --help

Leave a Comment