Linux DB

Mysql 에서 많이 쓰이는 명령어

2008.05.15 00:42

sylee 조회 수:36470


■ Mysql 데몬 start 하기
# /usr/local/mysql/bin/mysqld_safe &
또는  # /usr/local/mysql/share/mysql/mysql.server start

■ Mysql 데몬 stop 하기
# /usr/local/mysql/bin/mysqladmin -uroot shutdown
또는   # /usr/local/mysql/share/mysql/mysql.server stop

■ Mysql 접속 방법

형식 : mysql -u 사용자 -p 사용DB
예제)    # /usr/local/mysql/bin/mysql -u root -p mysql
           Enter password:      -> 초기 세팅후 비밀번호가 지정되지 않은경우는 엔터

또는

           # /usr/local/mysql/bin/mysql mysql -p
           Enter password:

■ mysql의 root암호설정법
  mysql> update user SET Password=password('비밀번호') where user='root';

■ 일반계정의 비밀번호 변경시
  mysql> update user set password=password('새비밀번호') where user='계정명';

■ DB 생성명령
  mysql> create database DB명
  

■ DB 사용자 계정 생성 방법(각 버전 별 필드 수를 확인 하시어 이용하시면 됩니다.)

◊ mysql 3.xx 에서 생성방법
  mysql> insert into user values('localhost','계정명',password('비밀번 호'),'N',
        'N','N','N','N','N','N','N','N','N','N','N','N','N');

  mysql> insert into db values('localhost','DB명','계정명','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

  mysql> FLUSH PRIVILEGES;     (새로 만든 디비를 MYSQL에 적용하기 위하여 reload함)

◊ mysql 4.0.xx 에서 생성방법
  mysql> insert into db values ('localhost','DB명','DB계정명','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y');


mysql> insert into user (host, user, password) values ('localhost','DB계정명',password('비밀번호'));
또는 아래와 같이도 생성가능함
  mysql> INSERT INTO user VALUES ('localhost','DB계정명',password('비밀번호'),
'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0);

  mysql> FLUSH PRIVILEGES;

◊ mysql 4.1.xx 에서 생성방법
  mysql> insert into user (host, user, password) values ('localhost','DB계정명',password('비밀번호'));

  mysql> INSERT INTO db(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv)
VALUES('localhost','DB명','DB계정명','Y','Y','Y','Y','Y','Y');

  mysql> FLUSH PRIVILEGES;

● GRANT 로 생성하는 방법
  mysql> GRANT ALL PRIVILEGES ON DB명.* TO DB계정명@localhost IDENTIFIED BY '비밀번호' WITH GRANT OPTION;
=> localhost에서 'DB계정명' 이라는 사용자를 등록시

  mysql> GRANT ALL PRIVILEGES ON DB명.* TO DB계정명@'%' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;
=> localhost 아닌 원격에서 접속시 호스트 부분을 % 로 해준다.


■ 계정,DB 생성 확인
  mysql> select * from user;


■ 기타 mysql에서 자주 사용되는 명령들

▷ DB삭제시
  mysql> drop database DB명

▷ DB 계정 삭제시
  mysql> delete from user where user='DBuser';  => (DBuser 라는 user 레코드를 삭제시)
  mysql> delete from db where user='DB';  => (DB 라는 db 레코드를 삭제시)
  mysql> FLUSH PRIVILEGES;

▷ DB선택시
  mysql> use DB명;

▷ DB 및 테이블 list보기
  mysql> show databases;
  mysql> show tables;

▷ mysql상의 테이블 정보 보기
  mysql> show tables from mysql;

▷ DB table의 칼럼정보 보기
  mysql> show columns from db;

▷ 테이블구조
  mysql> describe 테이블명;

▷ 인덱스 보기
  mysql> show index from 테이블명;

▷ 버전체크
  mysql> select version();

▷ MySQL의 상태 보기
  mysql> show status;

▷ MySQL 환경변수보기
  mysql> show variables;


◆ mysql 백업 하기
  # /usr/local/mysql/bin/mysqldump {-h 호스트} -u 사용자 -p DB명 > 백업파일명.sql

◆ mysql 복구 하기
  # /usr/local/mysql/bin/mysql {-h 호스트} -u 사용자 -p DB명 < 백업파일명.sql

  => {-h 호스트}는 원격접속시나 호스트명이 별도로 분류되어 있는경우에 사용
  

◆ Mysql root 비밀번호를 분실한 경우 조치방법

1. 실행중인 msyql 종료
  # killall mysqld  또는 killall -9 mysqld
  # ps -ef | grep mysqld  (mysql 데몬 없음을 확인)

2. grant-table 미사용모드로 mysql시작
  (mysql 3.x 사용시)
  # /usr/local/mysql/bin/safe_mysqld  --skip-grant-tables &
  (mysql 4.x 에서 사용시)
  # /usr/local/mysql/bin/mysqld_safe  --skip-grant-tables &
  # /usr/local/mysql/bin/mysql -u root -p mysql

3. update문으로 root사용자 패스워드 설정
  mysql> update user set password=password('newpasswd') where user = 'root';
  mysql> flush privileges;

4. 실행중인 mysql 다시 종료
  # killall mysqld  또는 killall -9 mysqld
  # ps -ef | grep mysqld  (mysql 데몬 없음을 확인)

5. Mysql 데몬 다시 시작
  # /usr/local/mysql/bin/safe_mysqld &
  # ps -ef | grep mysql
  # /usr/local/mysql/bin/mysql -u root -p mysql
    Enter Password:
번호 제목 글쓴이 날짜 조회 수
65 지정된 시간 이상 질의를 계속 하는 질의문 잡아내기 호스트웨이 2015.09.15 6041
64 MySQL Processlist 콘솔 상에서 확인 호스트웨이 2015.09.07 6060
63 [mysql] shell 자동화 호스트웨이 2015.09.20 6329
62 [mysql] sqli, pdo 설정 확인 호스트웨이 2015.09.22 6597
61 mysql 4.0 에서 4.1 다운그레이드 호스트웨이 2012.11.01 6616
60 phpmyadmin에서 'mcrypt 확장모듈을 불러올 수 없습니다' 에러 시 file 호스트웨이 2012.11.29 6658
59 Mysql에서 log-slow-queries 로그 남기기 호스트웨이 2012.09.21 6813
58 MySQL DB 옵티마이저 사용법 호스트웨이 2015.09.18 6858
57 [MySQL] 무한정 늘어나는 log-bin 파일 줄이기 호스트웨이 2012.11.23 7056
56 MySQL에서 Query Cache 사용하기 호스트웨이 2012.12.20 7088
55 [mysql] 작은 용량의 파일 로드 속도가 느려진 경우 호스트웨이 2015.09.22 7104
54 [MySQL] 쿼리 한 번으로 데이터베이스 용량 알아내기 file 호스트웨이 2012.11.16 7154
53 mysql-5.5.x 에서 character-set 변경 호스트웨이 2012.12.07 7200
52 [Oracle] 대량 자료 조회 Parallel 호스트웨이 2015.09.26 7244
51 MYSQL 동시접속자수 늘리기 호스트웨이 2015.09.18 7319
50 Client does not support authentication protocol requested by server 메시지 발생 시 호스트웨이 2012.10.18 7604
49 [mysql] table 백업 호스트웨이 2015.09.21 7801
48 MySQL 보안을 위한 전용관리계정으로 MySQL 관리하기 호스트웨이 2015.09.08 8956
47 mysql replication을 이용한 DB 백업 동기화 에러 발생시 (slave db 1062 error) 호스트웨이 2015.09.09 8981
46 chive – phpMyAdmin 보다 좋은 ! 호스트웨이 2012.05.18 10621