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