MySQL강좌15편: MYSQL관리유틸리티 mysqladmin 실무활용
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,710 조회
- 0 추천
- 목록
본문
MySQL강좌15편: MYSQL관리유틸리티 mysqladmin 실무활용
MYSQL에는 관리자를 MYSQL관리전용 유틸리티인 mysqladmin을 제공하고있다. MYSQL을 설치한 후에 MYSQL홈의 bin디렉토리에는 mysqladmin이라는 명령어가있다. 이 명령어로 우리는 MYSQL의 관리적인 측면에서 여러가지 작업을 할 수가 있다. 이번 절에서 필자는 mysqladmin이라는 MYSQL관리유틸리티로 할 수 있는 모든 실무작업들에 대해 설명하고 있다. 여러분들의 MYSQL데이터베이스관리와 리눅스 서버관리에 작은 보탬이 될 수 있기를 간절히 소망한다.
MYSQL의 관리전용 유틸리티인 mysqladmin으로 할 수 있는 대표적인 작업들은 다음과 같다.
① MYSQL의 root 패스워드 변경하기
② MYSQL의 일반계정 사용자 패스워드 변경하기
③ 새로운 데이터베이스 생성하기
④ 사용중인 데이터베이스 삭제하기
⑤ MYSQL의 현재상황 살펴보기
⑥ MYSQL에 접속한 클라이언트(threads)리스트 확인하기
⑦ MYSQL 캐쉬 데이터 동기화하기
⑧ MYSQL 종료하기
⑨ MYSQL 실행 환경변수 확인하기
⑩ MYSQL에 접속한 사용자 접속끊기
⑪ MYSQL의 버전 및 여러가지 실행 정보들 확인하기
⑫ MYSQL이 정상적으로 살아있는지 죽었는지 확인하기
⑬ 기타 MYSQL관리에 필요한 유용한 설정 및 정보확인
결론적으로 우리는 위의 작업들을 수행하기 위하여 mysqladmin을 이용한다. 즉 위에 나열한 바와같이 mysqladmin으로 MYSQL의 여러가지 관리작업들을 할 수 있다. 가장 대표적인 것으로 새로운 데이터베이스를 생성할 수 있으며 기존에 존재하고있던 데이터베이스를 삭제 할 수도 있다. 그리고 현재 실행중인 MYSQL을 종료할 수도 있다. 이외에도 mysqladmin으로 할 수 있는 여러가지 작업들이 있다.
MYSQL의 관리 유틸리티인 mysqladmin의 사용형식은 다음과 같다.
사용형식 : mysqladmin -u root -p 명령어
위 사용형식에서 명령어란 mysqladmin에서 사용할 수 있는 여러가지 명령어들을 의미한다. 명령어의 예로서 reload, shutdown, create, status등이 있으며 이들 명령어에 대해서는 차례차례 하나씩 이어서 설명하였으므로 직접 확인해보기 바란다. 그리고 -u란 MYSQL사용자계정을 입력하기 위한 옵션이고 -p는 패스워드를 입력하기 위한 옵션이다.
지금부터 이에 대해 자세한 사용법을 실제 예와 함께 배워볼 것이다. 참고로 mysqladmin의 보다 자세한 도움말을 위하여 “mysqladmin --help”를 실행해보는 것도 좋은 방법이 될 것이다.
새로운 데이터베이스 생성하기
새로운 데이터베이스를 생성하는 방법은 이미 앞에서 설명하였다. 이번에는 MYSQL의 관리유틸리티인 mysqladmin을 이용하여 MYSQL에 직접 접속하지 않은 리눅스 쉘상태에서 새로운 데이터베이스를 생성하는 방법에 대해서 알아보겠다. 즉 mysqladmin이라는 MYSQL유틸리티를 이용하여 새로운 데이터베이스를 생성하는 사용형식은 다음과 같다.
사용형식 : mysqladmin -u root -p create 새로운데이터베이스명
위의 형식에서 “새로운데이터베이스명”에 새로 생성할 데이터베이스의 이름을 지정해주면 된다. 아래는 현재 필자의 리눅스 서버에서 linux300이라는 새로운 데이터베이스를 생성하기 위하여 mysqladmin명령어를 사용한 것이다.
[root@sulinux bin]#pwd /usr/local/mysql/bin [root@sulinux bin]# [root@sulinux bin]#./mysqladmin -u root -p create linux300 Enter password: [root@sulinux bin]# |
아무런 에러메시지없이 실행이 종료되었다면 linux300이라는 데이터베이스가 정상적으로 생성되었다는 것을 의미한다. 확인을 위하여 MYSQL에 접속한 다음 “show databases”라는 MYSQL명령어로 존재하는 데이터베이스들을 확인한 것이다.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | TESTDB | | linux300 | | mysql | | picasso_db | | sspark_db | | temp_db | | temp_db2 | | test | +--------------------+ 9 rows in set (0.02 sec)
mysql> |
위의 결과를 보면 linux300이라는 이름의 데이터베이스를 확인할 수 있을 것이다.
참고로 이렇게 새로운 데이터베이스를 생성하면 MYSQL의 데이터가 저장되는 디렉토리내에 데이터베이스명과 동일한 디렉토리가 생성된다. 이 디렉토리내에 새로 생성한 데이터베이스의 실제데이터가 저장된다. 필자의 경우 MYSQL설치시에 데이터가 저장되는 디렉토리위치를 /usr/local/mysql/data/으로 지정하였기 때문에 여기서 새로 생성한 linux300데이터베이스의 디렉토리는 /usr/local/mysql/data/linux300/이 된다.
[root@sulinux bin]#ls -l /usr/local/mysql/data/ 합계 56 drwx------ 2 mysql mysql 4096 4월 29 01:27 TESTDB drwx------ 2 mysql mysql 4096 4월 29 01:40 linux300
drwx------ 2 mysql mysql 4096 4월 15 2011 mysql srwxrwxrwx 1 mysql mysql 0 4월 28 07:18 mysql.sock drwx------ 2 mysql mysql 4096 4월 28 06:32 picasso_db drwx------ 2 mysql mysql 4096 4월 28 06:46 sspark_db -rw-rw---- 1 mysql mysql 5299 4월 29 00:52 sulinux.net.err -rw-rw---- 1 mysql mysql 8704 4월 28 07:53 sulinux.net.err-old -rw-rw---- 1 mysql mysql 5 4월 29 00:52 sulinux.net.pid drwx------ 2 mysql mysql 4096 4월 28 07:33 temp_db drwx------ 2 mysql mysql 4096 4월 28 07:40 temp_db2 drwx------ 2 mysql mysql 4096 4월 15 2011 test [root@sulinux bin]# |
가끔 다른 분들은 MYSQL의 데이터 디렉토리로서 /usr/local/mysql/var/로 사용하는 경향이 있다. 참고하기 바란다.
특정데이터베이스 삭제하기
앞의 예에서는 mysqladmin을 이용하여 새로운 데이터베이스를 생성하는 예를 보았다. 이번에는 이와 반대로 mysqladmin 을 이용하여 이미 생성되어있는 데이터베이스를 삭제할 수도 있다.
사용형식 : mysqladmin -u root -p drop 삭제할데이터베이스명
위와같이 mysqladmin으로 존재하는 데이터베이스를 삭제하면 그 데이터베이스내에 저장되어있던 모든 테이블의 데이터들까지 모두 삭제되므로 주의하기 바란다. 아래의 예는 앞의 예에서 생성하였던 linux300이라는 데이터베이스를 삭제한 예이다.
[root@sulinux bin]#./mysqladmin -u root -p drop linux300 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 'linux300' database [y/N] y
OK, aborting database drop! [root@sulinux bin]# |
위의 예와 같이 mysqladmin으로 이미 존재하고있는 데이터베이스를 삭제하면 “Do you really want to drop the 'linux300' database [y/N]” 와 같은 메시지로 삭제확인하게 된다. 이때 y를 입력하면 삭제가 되고 아무것도 입력하지 않거나 N를 입력하면 삭제되지 않는다.
아래는 위의 삭제확인 메시지에 y를 입력하여 linux300이라는 데이터베이스를 삭제한 후에 실제로 삭제가 되었는가를 확인하기 위하여 MYSQL에 접속하여 “show databases”명령어로 확인한 것이다.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | TESTDB | | linux300 | | mysql | | picasso_db | | sspark_db | | temp_db | | temp_db2 | | test | +--------------------+ 9 rows in set (0.00 sec)
mysql> |
확인한 바와같이 linux300이라는 데이터베이스는 존재하지 않는다. 그리고 이미 말씀드린 바와같이 이렇게 삭제하면 그 데이터베이스에 존재하던 모든 데이터들이 삭제된다.
그리고 또 한가지 분명히 알아둬야 할 것이 있다. 다음 예를 보자.
[root@sulinux bin]#ls -l /usr/local/mysql/data/ 합계 56 drwx------ 2 mysql mysql 4096 4월 29 01:27 TESTDB drwx------ 2 mysql mysql 4096 4월 29 01:40 linux300 drwx------ 2 mysql mysql 4096 4월 15 2011 mysql srwxrwxrwx 1 mysql mysql 0 4월 28 07:18 mysql.sock drwx------ 2 mysql mysql 4096 4월 28 06:32 picasso_db drwx------ 2 mysql mysql 4096 4월 28 06:46 sspark_db -rw-rw---- 1 mysql mysql 5299 4월 29 00:52 sulinux.net.err -rw-rw---- 1 mysql mysql 8704 4월 28 07:53 sulinux.net.err-old -rw-rw---- 1 mysql mysql 5 4월 29 00:52 sulinux.net.pid drwx------ 2 mysql mysql 4096 4월 28 07:33 temp_db drwx------ 2 mysql mysql 4096 4월 28 07:40 temp_db2 drwx------ 2 mysql mysql 4096 4월 15 2011 test [root@sulinux bin]# |
실제로 데이터베이스의 데이터가 저장되는 위치인 /usr/local/mysql/data/ 디렉토리에 위치한 linux300의 디렉토리가 삭제된다는 점도 꼭 기억하기 바란다.
MYSQL의 권한테이블 갱신하기
MYSQL의 관리명령어인 mysqladmin을 이용하면 아직 적용되지않은 변경된 데이터값들을 동기화 할 수 있다. MYSQL의 모든 실제데이터들은 각각의 데이터베이스내에 존재하는 테이블(table)에 저장되므로 MYSQL의 테이블(table)을 재로딩(reload)함으로써 현재 MYSQL 캐쉬(cache)에 존재하는 변경되어야하는 데이터들이 실제로 변경되는 결과를 가져온다.
특히 리눅스를 호스팅서버로 사용하는 서버관리자의 경우에 하루에도 몇 건씩 새로운 사용자의 MYSQL을 사용설정하기 위하여 그 사용자의 데이터베이스 생성과 사용자생성, 패스워드설정등을 하는 경우가 있다. 이렇게 생성은 하였지만 실제로 접속을 해보면 접속이 안되는 경우가 종종있다. 원인은 바로 여기에 있다. 즉 새로 생성된 데이터들이 실제로 해당 테이터베이스의 테이블에 저장되어 적용이 되어야하는데 이를 위하여 reload를 해주지 않았기 때문이다.
따라서 새로운 MYSQL의 사용자를 생성/수정/삭제하고 이 사용자가 MYSQL을 바로 사용하도록하려면 반드시 다음 예와 같이 MYSQL의 테이블 데이터를 동기화해주기 바란다.
사용형식 : mysqladmin -u root -p reload
위의 형식에서 reload 대신 flush-privileges를 사용할 수도 있다. 아래의 예는 현재 필자의 리눅스 시스템에서 MYSQL의 데이터 동기화를 위하여 mysqladmin유틸리티를 사용한 것이다.
[root@sulinux bin]#/usr/local/mysql/bin/mysqladmin -u root -p reload Enter password: ********
[root@sulinux bin]# |
MYSQL에 접속한 사용자 확인하기
MYSQL의 관리 유틸리티인 mysqladmin을 이용하면 현재 MYSQL을 사용하고있는 사용자들의 정보를 확인할 수 있다. 즉 현재 활동중인(active된) MYSQL의 스레드(threads)를 확인 할 수 있다. 이를 위한 사용형식은 다음과 같다.
사용형식 : mysqladmin -u root -p processlist
아래의 예는 현재 필자가 사용하는 리눅스 서버에서 MYSQL을 사용중인 사용자정보를 확인하기 위하여 mysqladmin유틸리티를 이용한 예이다.
[root@sulinux bin]#/usr/local/mysql/bin/mysqladmin -u root -p processlist Enter password: ********
+----+----------+-----------+------------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+----------+-----------+------------+---------+------+-------+------------------+ | 9 | picasso | localhost | picasso_db | Sleep | 15 | | | | 10 | sspark | localhost | sspark_db | Sleep | 11 | | | | 11 | tempuser | localhost | temp_db2 | Sleep | 6 | | | | 12 | root | localhost | | Query | 0 | | show processlist | +----+----------+-----------+------------+---------+------+-------+------------------+ [root@sulinux bin]# |
위의 결과를 보면 현재 picasso, sspark, tempuser, root사용자가 MYSQL에 접속해있다는 것과 이들의 접속정보 및 사용명령어들을 간단히 확인할 수 있다.
접속되어있는 MYSQL사용자(threads)의 접속 끊기
MYSQL의 관리 유틸리티 mysqladmin을 이용하면 현재 MYSQL을 사용하고있는 사용자(스레드, threads)의 접속을 선택적으로 종료할 수 있다. 즉 mysqladmin의 kill명령어를 사용하면 특정사용자의 접속(스레드, threads)만을 종료 할 수 있다. 이를 위하여 MYSQL의 스레드(threads)를 확인해야하는데 앞에서 설명드렸던 mysqladmin의 processlist라는 명령어를 이용하면 MYSQL의 스레드를 확인 할 수 있다. 사용하는 형식은 다음과 같다.
사용형식 : mysqladmin -u root -p kill 스레드번호
다음 예는 mysqladmin을 이용하여 현재 MYSQL을 사용하고있는 sspark사용자의 스레드(threads)를 종료한 것이다. 그리고 다시 “./mysqladmin -u root -p processlist”를 실행하여 sspark의 MYSQL 접속이 종료되었는가를 확인하였다.
[root@sulinux bin]#/usr/local/mysql/bin/mysqladmin -u root -p processlist Enter password: ********
+----+----------+-----------+------------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+----------+-----------+------------+---------+------+-------+------------------+ | 9 | picasso | localhost | picasso_db | Sleep | 92 | | | | 10 | sspark | localhost | sspark_db | Sleep | 88 | | | | 11 | tempuser | localhost | temp_db2 | Sleep | 83 | | | | 13 | root | localhost | | Query | 0 | | show processlist | +----+----------+-----------+------------+---------+------+-------+------------------+ [root@sulinux bin]# [root@sulinux bin]#/usr/local/mysql/bin/mysqladmin -u root -p kill 10 Enter password: ******** [root@sulinux bin]# [root@sulinux bin]#/usr/local/mysql/bin/mysqladmin -u root -p processlist Enter password: ******** +----+----------+-----------+------------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+----------+-----------+------------+---------+------+-------+------------------+ | 9 | picasso | localhost | picasso_db | Sleep | 103 | | | | 11 | tempuser | localhost | temp_db2 | Sleep | 94 | | | | 15 | root | localhost | | Query | 0 | | show processlist | +----+----------+-----------+------------+---------+------+-------+------------------+ [root@sulinux bin]# |
먼저 “./mysqladmin -u root -p processlist”를 이용하여 현재 MYSQL의 사용자 스레드(threads)를 확인하였다. 이때 확인된 사용자가 picasso, sspark, tempuser와 root임을 알 수 있으며 sspark의 ID가 10이라는 것도 확인 할 수 있다. 이렇게 sspark사용자의 스레드(threads) ID를 확인한 후에 이 스레드를 종료시키기 위하여 “./mysqladmin -u root -p kill 10”을 실행한 것이다. 즉 sspark의 스레드 ID가 10번이므로 10번 스레드를 종료시키게되면 sspark의 MYSQL접속이 종료된다.
이번 예에 대한 실무적인 활용은 특정사용자가 MYSQL의 자원을 과하게 많이 사용하여 서버 과부하를 유발한다면 특정사용자의 스레드(threads)를 종료함으로서 그 사용자의 MYSQL 접속을 끊어버리는 목적으로 활용 할 수 있다.
MYSQL의 간단한 실행정보 확인하기
MYSQL의 간단한 실행상태 정보를 확인하려면 mysqladmin유틸리티에 status라는 명령어를 실행하면 된다. 여기서 확인할 수 있는 MYSQL의 실행정보들은 다음과 같다.
① MYSQL의 총 실행시간
② 현재 처리중인 스레드(Threads)수
③ 오픈된 데이터베이스 및 테이블 수
④ 초당 평균 처리속도
⑤ 기타 실행정보들(스로우쿼리, Flush tables등)
위와 같은 MYSQL의 간단한 운용정보들을 확인하는 사용형식은 다음과 같다.
사용형식 : mysqladmin -u root -p status
아래의 예는 mysqladmin을 이용하여 현재 필자가 사용하고있는 리눅스서버에 설치되어있는 MYSQL의 간단한 실행정보들을 확인한 것이다.
[root@sulinux bin]#/usr/local/mysql/bin/mysqladmin -u root -p status Enter password: ********
Uptime: 3399 Threads: 3 Questions: 72 Slow queries: 0 Opens: 30 Flush tables: 1 Open tables: 9 Queries per second avg: 0.21 [root@sulinux bin]# |
위의 예의 결과로 알 수 있는 것은 다음과 같다.
- MYSQL의 총 실행시간(Uptime) : 3399
- 현재 처리중인 스레드(Threads)수 : 3
- 오픈된 데이터베이스(Opens) 및 테이블(Open tables) 수 : 9
- 초당 평균 처리속도(Queries per second avg) : 0.21
- 기타 실행정보들(스로우쿼리, Flush tables등)
다음은 이보다 좀 더 자세한 정보를 확인하는 방법이다. 함께보기 바란다.
MYSQL의 현재 상황 자세히 살펴보기
바로 앞의 예에서는 MYSQL의 간단한 실행정보를 확인해보는 방법에 대해서 알아보았다. 이번에는 MYSQL의 mysqladmin유틸리티를 이용하여 앞의 경우보다 자세한 MYSQL 실행정보들을 확인하는 방법을 알아보겠다. 즉 MYSQL의 자세한 실행정보를 확인하는 mysqladmin유틸리티의 사용형식은 다음과 같다.
사용형식 : mysqladmin -u root -p extended-status
즉 mysqladmin유틸리티에 extended-status라는 명령어를 주어서 실행하면 아래 예에서 보는 바와같이 MYSQL의 자세한 실행상황 정보를 확인할 수 있다.
[root@sulinux bin]#/usr/local/mysql/bin/mysqladmin -u root -p extended-status Enter password: ********
+----------------------------+----------+ | Variable_name | Value | +----------------------------+----------+ | Aborted_clients | 1 | | Aborted_connects | 0 | | Binlog_cache_disk_use | 0 | | Binlog_cache_use | 0 | | Bytes_received | 3646 | | Bytes_sent | 11760 | | Com_admin_commands | 0 | | Com_assign_to_keycache | 0 | | Com_alter_db | 0 | | Com_alter_db_upgrade | 0 | | Com_alter_event | 0 | … 중략 | Threads_cached | 0 | | Threads_connected | 3 | | Threads_created | 17 | | Threads_running | 1 | | Uptime | 3469 | | Uptime_since_flush_status | 3469 | +----------------------------+----------+ [root@sulinux bin]# |
참고로 위의 예와 같은 동일한 결과를 MYSQL에 접속한 상태에서 “show status”라는 명령어로도 확인할 수 있다. 아래는 MYSQL의 root계정으로 MYSQL에 접속하여 “show status”명령어를 사용한 예이다.
[root@sulinux bin]#/usr/local/mysql/bin/mysql -u root -p mysql Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 18 Server version: 5.1.32 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> mysql> show status; +----------------------------+----------+ | Variable_name | Value | +----------------------------+----------+ | Aborted_clients | 1 | | Aborted_connects | 0 | | Binlog_cache_disk_use | 0 | | Binlog_cache_use | 0 | | Bytes_received | 121 | | Bytes_sent | 157 | | Com_admin_commands | 0 | | Com_assign_to_keycache | 0 | … 이하생략 |
결과가 너무 길어서 생략하였지만 앞에서 보았던 mysqladmin명령어의 결과와 같은 결과를 얻을 수 있다는 점을 확인하기 바란다.
MYSQL의 환경변수를 확인하기
MYSQL의 mysqladmin유틸리티로 현재 실행되어있는 MYSQL의 환경변수들을 확인할 수 있다. 즉 mysqladmin에 variables라는 명령어를 사용하면 현재 실행중인 MYSQL에 설정된 환경변수들을 확인할 수 있다. 사용형식은 다음과 같다.
사용형식 : mysqladmin -u root -p variables
아래의 예는 현재 실행되어있는 MYSQL의 환경변수들을 확인하기 위하여 mysqladmin유틸리티를 사용한 것이다. 아래의 예와 같이 MYSQL에 직접 접속하지 않은 리눅스 쉘상태에서 간편하게 MYSQL의 환경변수들을 점검해 볼 수 있다.
[root@sulinux bin]#/usr/local/mysql/bin/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/local/mysql/ | | big_tables | OFF | | binlog_cache_size | 32768 | | binlog_format | STATEMENT | | bulk_insert_buffer_size | 8388608 | | character_set_client | euckr | | character_set_connection | euckr | | character_set_database | euckr | | character_set_filesystem | binary | | character_set_results | euckr | | character_set_server | euckr | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql/share/mysql/charsets/ | | collation_connection | euckr_korean_ci | | collation_database | euckr_korean_ci | | collation_server | euckr_korean_ci | | completion_type | 0 | | concurrent_insert | 1 | | connect_timeout | 10 | | datadir | /usr/local/mysql/data/ | | date_format | %Y-%m-%d | | datetime_format | %Y-%m-%d %H:%i:%s | | default_week_format | 0 | | delay_key_write | ON | | delayed_insert_limit | 100 | | delayed_insert_timeout | 300 | | delayed_queue_size | 1000 | | div_precision_increment | 4 | | engine_condition_pushdown | ON | | error_count | 0 | | event_scheduler | OFF | | expire_logs_days | 0 | | flush | OFF | | flush_time | 0 | | foreign_key_checks | ON | | ft_boolean_syntax | + -><()~*:""&| | | ft_max_word_len | 84 | | ft_min_word_len | 4 | | ft_query_expansion_limit | 20 | | ft_stopword_file | (built-in) | | general_log | OFF | | general_log_file | /usr/local/mysql/data/sulinux.log | | group_concat_max_len | 1024 | | have_community_features | YES | | have_compress | YES | | have_crypt | YES | | have_csv | YES | | have_dynamic_loading | NO | | have_geometry | YES | | have_innodb | NO | | have_ndbcluster | NO | | have_openssl | NO | | have_partitioning | NO | | have_query_cache | YES | | have_rtree_keys | YES | | have_ssl | NO | | have_symlink | YES | | hostname | sulinux.net | | identity | 0 | | ignore_builtin_innodb | OFF | | init_connect | | | init_file | | | init_slave | | | insert_id | 0 | | interactive_timeout | 28800 | | join_buffer_size | 131072 | | keep_files_on_create | OFF | | key_buffer_size | 16777216 | | key_cache_age_threshold | 300 | | key_cache_block_size | 1024 | | key_cache_division_limit | 100 | | language | /usr/local/mysql/share/mysql/english/ | | large_files_support | ON | | large_page_size | 0 | | large_pages | OFF | | last_insert_id | 0 | | lc_time_names | en_US | | license | GPL | | local_infile | ON | | locked_in_memory | OFF | | log | OFF | | log_bin | OFF | | log_bin_trust_function_creators | OFF | | log_bin_trust_routine_creators | OFF | | log_error | /usr/local/mysql/data/sulinux.net.err | | log_output | FILE | | log_queries_not_using_indexes | OFF | | log_slave_updates | OFF | | log_slow_queries | OFF | | log_warnings | 1 | | long_query_time | 10.000000 | | low_priority_updates | OFF | | lower_case_file_system | OFF | | lower_case_table_names | 0 | | max_allowed_packet | 1048576 | | max_binlog_cache_size | 4294963200 | | max_binlog_size | 1073741824 | | max_connect_errors | 10 | | max_connections | 151 | | max_delayed_threads | 20 | | max_error_count | 64 | | max_heap_table_size | 16777216 | | max_insert_delayed_threads | 20 | | max_join_size | 4294967295 | | max_length_for_sort_data | 1024 | | max_prepared_stmt_count | 16382 | | max_relay_log_size | 0 | | max_seeks_for_key | 4294967295 | | max_sort_length | 1024 | | max_sp_recursion_depth | 0 | | max_tmp_tables | 32 | | max_user_connections | 0 | | max_write_lock_count | 4294967295 | | min_examined_row_limit | 0 | | multi_range_count | 256 | | myisam_data_pointer_size | 6 | | myisam_max_sort_file_size | 2146435072 | | myisam_recover_options | OFF | | myisam_repair_threads | 1 | | myisam_sort_buffer_size | 8388608 | | myisam_stats_method | nulls_unequal | | myisam_use_mmap | OFF | | net_buffer_length | 8192 | | net_read_timeout | 30 | | net_retry_count | 10 | | net_write_timeout | 60 | | new | OFF | | old | OFF | | old_alter_table | OFF | | old_passwords | OFF | | open_files_limit | 1024 | | optimizer_prune_level | 1 | | optimizer_search_depth | 62 | | pid_file | /usr/local/mysql/data/sulinux.net.pid | | plugin_dir | /usr/local/mysql/lib/mysql/plugin | | port | 3306 | | preload_buffer_size | 32768 | | profiling | OFF | | profiling_history_size | 15 | | protocol_version | 10 | | pseudo_thread_id | 0 | | query_alloc_block_size | 8192 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 0 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | | query_prealloc_size | 8192 | | rand_seed1 | | | rand_seed2 | | | range_alloc_block_size | 4096 | | read_buffer_size | 262144 | | read_only | OFF | | read_rnd_buffer_size | 524288 | | relay_log | | | relay_log_index | | | relay_log_info_file | relay-log.info | | relay_log_purge | ON | | relay_log_space_limit | 0 | | report_host | | | report_password | | | report_port | 3306 | | report_user | | | rpl_recovery_rank | 0 | | secure_auth | OFF | | secure_file_priv | | | server_id | 1 | | skip_external_locking | ON | | skip_networking | OFF | | skip_show_database | OFF | | slave_compressed_protocol | OFF | | slave_exec_mode | STRICT | | slave_load_tmpdir | /tmp | | slave_net_timeout | 3600 | | slave_skip_errors | | | slave_transaction_retries | 10 | | slow_launch_time | 2 | | slow_query_log | OFF | | slow_query_log_file | /usr/local/mysql/data/sulinux-slow.log | | socket | /tmp/mysql.sock | | sort_buffer_size | 524288 | | sql_auto_is_null | ON | | sql_big_selects | ON | | sql_big_tables | OFF | | sql_buffer_result | OFF | | sql_log_bin | ON | | sql_log_off | OFF | | sql_log_update | ON | | sql_low_priority_updates | OFF | | sql_max_join_size | 4294967295 | | sql_mode | | | sql_notes | ON | | sql_quote_show_create | ON | | sql_safe_updates | OFF | | sql_select_limit | 4294967295 | | sql_slave_skip_counter | | | sql_warnings | OFF | | ssl_ca | | | ssl_capath | | | ssl_cert | | | ssl_cipher | | | ssl_key | | | storage_engine | MyISAM | | sync_binlog | 0 | | sync_frm | ON | | system_time_zone | KST | | table_definition_cache | 256 | | table_lock_wait_timeout | 50 | | table_open_cache | 64 | | table_type | MyISAM | | thread_cache_size | 0 | | thread_handling | one-thread-per-connection | | thread_stack | 196608 | | time_format | %H:%i:%s | | time_zone | SYSTEM | | timed_mutexes | OFF | | timestamp | 1240937526 | | tmp_table_size | 16777216 | | tmpdir | /tmp | | transaction_alloc_block_size | 8192 | | transaction_prealloc_size | 4096 | | tx_isolation | REPEATABLE-READ | | unique_checks | ON | | updatable_views_with_limit | YES | | version | 5.1.32 | | version_comment | Source distribution | | version_compile_machine | i686 | | version_compile_os | pc-linux-gnu | | wait_timeout | 28800 | | warning_count | 0 | +---------------------------------+----------------------------------------+ [root@sulinux bin]# |
참고로 MYSQL의 환경변수들을 확인하는 방법에는 MYSQL에 접속한 후에 “show variables”라는 명령어를 사용할 수도 있다. 결과는 위와 동일하다. 즉 아래는 MYSQL에 root로 접속한 후에 “show variables”라는 명령어를 사용하여 MYSQL의 환경변수를 확인한 예이다.
[root@sulinux bin]#/usr/local/mysql/bin/mysql -u root -p mysql Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 20 Server version: 5.1.32 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> mysql> show variables; +---------------------------------+----------------------------------------+ | Variable_name | Value | +---------------------------------+----------------------------------------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | | autocommit | ON | | automatic_sp_privileges | ON | | back_log | 50 | | basedir | /usr/local/mysql/ | | big_tables | OFF | | binlog_cache_size | 32768 | | binlog_format | STATEMENT | | bulk_insert_buffer_size | 8388608 | | character_set_client | euckr | | character_set_connection | euckr | | character_set_database | euckr | … 이하생략 |
위의 결과가 앞의 예와 중복되므로 결과의 앞부분만을 나타낸 것이다. 여기서 말하고자 하는것은 MYSQL의 환경변수를 확인하는 방법이 mysqladmin을 이용하는 방법외에도 MYSQL에 접속하여 “show variables”를 이용하는 방법도있다는 것이다. 참고로 기억해두기 바란다.
현재 MYSQL의 정확한 버전과 여러가지 실행정보 확인하기
다음은 MYSQL의 mysqladmin유틸리티를 이용하여 MYSQL의 버전정보와 함께 여러가지 실행정보들을 확인해보는 방법이다. 즉 mysqladmin에 version이라는 명령어를 사용하면 MYSQL의 버전정보와 함께 다음과 같은 정보들을 확인할 수 있다.
- MYSQL의 버전
- mysqladmin유틸리티의 버전
- MYSQL의 저작권정보
- 프로토콜 버전정보
- MYSQL 소켓파일 위치정보
- MYSQL의 총 실행시간 정보
- MYSQL의 총 스레드(threads)수
- MYSQL의 오픈된 데이터베이스와 테이블 수
- MYSQL의 초당 응답완료 시간
- 기타 정보들
위의 정보를 확인하기 위한 mysqladmin의 사용하는 형식은 다음과 같다.
사용형식 : mysqladmin -u root -p version
아래의 예는 현재 필자의 시스템에서 사용중인 MYSQL의 버전정보와 위에서 말한 다양한 정보를 확인한 예이다.
[root@sulinux bin]#/usr/local/mysql/bin/mysqladmin -u root -p version Enter password: ********
/usr/local/mysql/bin/mysqladmin Ver 8.42 Distrib 5.1.32, for pc-linux-gnu on i686 Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license
Server version 5.1.32 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /tmp/mysql.sock Uptime: 1 hour 1 min 3 sec
Threads: 3 Questions: 83 Slow queries: 0 Opens: 30 Flush tables: 1 Open tables: 9 Queries per second avg: 0.22 [root@sulinux bin]# |
MYSQL이 죽었는지 살았는지 확인하기
MYSQL의 mysqladmin 유틸리티를 이용하면 MYSQL데이터베이스가 살아있는가를 확인할 수 있다. 즉 mysqladmin에 ping이라는 명령어를 사용해보면 MYSQL이 정상적으로 실행되고있는지의 여부를 확인할 수 있다. 만약 MYSQL이 정상적으로 실행되어 살아있다면 이 명령어의 실행결과로 “mysqld is alive”라는 메시지가 출력된다.
사용하는 형식은 다음과 같다.
사용형식 : mysqladmin -u root -p ping
아래의 예는 MYSQL이 정상적으로 살아있는가를 확인하기 위하여 “mysqladmin -u root -p ping”을 실행한 예이다.
[root@sulinux bin]#/usr/local/mysql/bin/mysqladmin -u root -p ping Enter password: ********
mysqld is alive [root@sulinux bin]# |
위의 결과 “mysqld is alive”라는 결과를 확인하였으므로 현재 MYSQL은 정상적으로 실행중임을 알 수 있다.
관련자료
-
이전
-
다음