MYSQL/MariaDB 관리를 위한 20가지 mysqladmin 명령
mysqladmin은 MySQL/MariaDB 서버와 함께 제공되는 명령줄 데이터베이스 관리 유틸리티로, 데이터베이스 관리자가 몇 가지 기본적인 작업을 수행하는 데 사용됩니다. >MySQL 루트 비밀번호 설정, 루트 비밀번호 변경, mysql 프로세스 모니터링, 권한 다시 로드, 데이터베이스 생성/삭제, 서버 상태 확인, 사용 통계 표시, 실행 중인 쿼리 종료 등과 같은 작업.
mysqladmin을 사용하는 명령과 일반 구문은 다음과 같습니다.
mysqladmin [options] command [command-arg] [command [command-arg]] ...
MySQL/MariaDB 서버가 설치되어 있지 않거나 이전 버전의 MySQL 서버를 사용하고 있는 경우 다음을 사용하여 MySQL 버전을 설치하거나 업데이트하는 것이 좋습니다. 다음 기사:
- RHEL 기반 배포판에 MySQL을 설치하는 방법
- RHEL 및 Debian 시스템에 MariaDB를 설치하는 방법
이 기사에서는 시스템/데이터베이스 관리자가 일상 업무에서 사용하는 매우 유용한 'mysqladmin' 명령을 컴파일했습니다. 이러한 작업을 수행하려면 시스템에 MySQL/MariaDB 서버가 설치되어 있어야 합니다.
1. MySQL 루트 비밀번호 설정 방법
MySQL/MariaDB 서버를 새로 설치한 경우 루트 사용자로 연결하는 데 비밀번호가 필요하지 않습니다. 루트 사용자의 MySQL 비밀번호를 설정하려면 다음 명령을 사용하세요.
mysqladmin -u root password YOURNEWPASSWORD
경고: mysqladmin을 사용하여 새 MYSQL 비밀번호를 설정하는 것은 취약한 것으로 간주되어야 합니다. 일부 시스템에서는 시스템의 활성 프로세스 상태를 알기 위해 다른 사용자가 실행할 수 있는 ps 명령과 같은 시스템 상태 프로그램에 사용자의 비밀번호가 표시됩니다.
2. MySQL 루트 비밀번호를 변경하는 방법
MySQL 루트 비밀번호를 변경하거나 업데이트하려면 다음 명령을 입력해야 합니다. 예를 들어, 이전 비밀번호가 123456이고 이를 새 비밀번호(예: xyz123)로 변경하고 싶다고 가정해 보겠습니다.
mysqladmin -u root -p123456 password 'xyz123'
3. MySQL 서버 상태 확인 방법
MySQL 서버가 실행 중인지 확인하려면 다음 명령을 사용하세요.
mysqladmin -u root -p ping
Enter password:
mysqld is alive
4. 내가 실행 중인 MySQL 버전을 확인하는 방법
다음 명령은 현재 실행 상태와 함께 MySQL 버전을 보여줍니다.
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. MySQL 서버의 현재 상태를 확인하는 방법
MySQL 서버의 현재 상태를 확인하려면 다음 명령어를 사용하세요. mysqladmin 명령은 실행 중인 스레드 및 쿼리와 함께 가동 시간 상태를 표시합니다.
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. MySQL 상태 변수 및 해당 값을 확인하는 방법
MySQL 서버 변수 및 값의 모든 실행 상태를 확인하려면 다음 명령어를 입력하세요. 출력은 아래 출력과 유사합니다.
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. 모든 MySQL 서버 변수 및 값을 보는 방법은 무엇입니까?
MySQL 서버에서 실행 중인 모든 변수와 값을 보려면 다음과 같은 명령어를 사용하세요.
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. MySQL 서버의 활성 스레드를 확인하는 방법
다음 명령은 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. MySQL 서버에서 데이터베이스를 생성하는 방법
MySQL 서버에 새 데이터베이스를 생성하려면 아래 표시된 명령을 사용하세요.
mysqladmin -u root -p create tecmint
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 |
| tecmint |
+--------------------+
4 rows in set (0.001 sec)
10. MySQL 서버에서 데이터베이스를 삭제하는 방법
MySQL 서버에 데이터베이스를 삭제하려면 다음 명령을 사용하세요. 'y'를 눌러 확인하라는 메시지가 표시됩니다.
mysqladmin -u root -p drop tecmint
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. MySQL 권한을 다시 로드/새로 고치는 방법은 무엇입니까?
reload 명령은 서버에 부여 테이블을 다시 로드하도록 지시하고 refresh 명령은 모든 테이블을 플러시하고 로그 파일을 다시 엽니다.
mysqladmin -u root -p reload
mysqladmin -u root -p refresh
12. MySQL 서버를 안전하게 종료하는 방법
MySQL 서버를 안전하게 종료하려면 다음 명령을 입력하세요.
mysqladmin -u root -p shutdown
Enter password:
다음 명령을 사용하여 MySQL 서버를 시작/중지할 수도 있습니다.
systemctl stop mysqld
systemctl start mysqld
Or
systemctl stop mariadb
systemctl start mariadb
13. 몇 가지 유용한 MySQL 플러시 명령
다음은 설명과 함께 몇 가지 유용한 플러시 명령입니다.
- flush-hosts: 호스트 캐시에서 모든 호스트 정보를 플러시합니다.
- flush-tables: 모든 테이블을 플러시합니다.
- flush-threads: 모든 스레드 캐시를 플러시합니다.
- flush-logs: 모든 정보 로그를 플러시합니다.
- flush-privileges: 부여 테이블을 다시 로드합니다(다시 로드와 동일).
- flush-status: 상태 변수를 지웁니다.
이 명령들을 확인해 보겠습니다.
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. Sleeping MySQL 클라이언트 프로세스를 종료하는 방법은 무엇입니까?
다음 명령을 사용하여 휴면 중인 MySQL 클라이언트 프로세스를 식별합니다.
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 |
+----+------+-----------+----+---------+------+-------+------------------+
이제 아래와 같이 kill 및 프로세스 ID를 사용하여 다음 명령을 실행합니다.
mysqladmin -u root -p kill 5
Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----+---------+------+-------+------------------+
| 12 | root | localhost | | Query | 0 | | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
여러 프로세스를 종료하려면 아래와 같이 쉼표로 구분하여 프로세스 ID를 전달하세요.
mysqladmin -u root -p kill 5,10
15. 여러 mysqladmin 명령을 함께 실행하는 방법
여러 개의 'mysqladmin' 명령을 함께 실행하려는 경우 명령은 다음과 같습니다.
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. 원격 MySQL 서버에 연결하는 방법
원격 MySQL 서버에 연결하려면 원격 서버의 IP 주소와 함께 -h(호스트)를 사용하세요. 기계.
mysqladmin -h 172.16.25.126 -u root -p
17. 원격 MySQL 서버에서 명령을 실행하는 방법
원격 MySQL 서버의 상태를 보고 싶다고 가정하면 명령은 다음과 같습니다.
mysqladmin -h 172.16.25.126 -u root -p status
18. 슬레이브 서버에서 MySQL 복제를 시작/중지하는 방법
슬레이브 서버에서 MySQL 복제를 시작/중지하려면 다음 명령을 사용하십시오.
mysqladmin -u root -p start-slave
mysqladmin -u root -p stop-slave
19. MySQL 서버 디버그 정보를 로그에 저장하는 방법
이벤트 스케줄러에 대한 정보를 포함하여 사용 중인 잠금, 사용된 메모리 및 쿼리 사용량에 대한 디버그 정보를 MySQL 로그 파일에 기록하도록 서버에 지시합니다.
mysqladmin -u root -p debug
Enter password:
20. mysqladmin 옵션 및 사용법을 보는 방법
myslqadmin 명령의 추가 옵션과 사용법을 알아보려면 아래와 같이 help 명령을 사용하십시오. 사용 가능한 옵션 목록이 표시됩니다.
mysqladmin --help
우리는 이 문서의 예제와 함께 거의 모든 'mysqladmin' 명령을 포함하기 위해 최선을 다했습니다. 그래도 빠진 것이 있으면 댓글을 통해 알려주십시오. 친구들과 공유하는 것을 잊지 마세요.