Linux DB

Mysql 에서 많이 쓰이는 명령어

2008.05.15 00:42

sylee 조회 수:36449


■ 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:
번호 제목 글쓴이 날짜 조회 수
25 MySQL 설치 시 checking "LinuxThreads"… "Not found" 에러 발생 시 호스트웨이 2012.09.21 11309
24 [mysql] /tmp/mysql.sock이 없다고 DB접속이 안되는 경우 호스트웨이 2015.09.21 11170
23 Mysql DB 생성 및 사용자 추가 호스트웨이 2012.03.23 11144
22 MySQL Table 상태 확인, 복구 및 최적화 호스트웨이 2015.09.11 10895
21 MySQL 원격 접속이 이뤄지지 않는다면? 호스트웨이 2012.07.13 10736
20 chive – phpMyAdmin 보다 좋은 ! 호스트웨이 2012.05.18 10621
19 mysql replication을 이용한 DB 백업 동기화 에러 발생시 (slave db 1062 error) 호스트웨이 2015.09.09 8981
18 MySQL 보안을 위한 전용관리계정으로 MySQL 관리하기 호스트웨이 2015.09.08 8956
17 [mysql] table 백업 호스트웨이 2015.09.21 7800
16 Client does not support authentication protocol requested by server 메시지 발생 시 호스트웨이 2012.10.18 7604
15 MYSQL 동시접속자수 늘리기 호스트웨이 2015.09.18 7317
14 [Oracle] 대량 자료 조회 Parallel 호스트웨이 2015.09.26 7239
13 mysql-5.5.x 에서 character-set 변경 호스트웨이 2012.12.07 7200
12 [MySQL] 쿼리 한 번으로 데이터베이스 용량 알아내기 file 호스트웨이 2012.11.16 7153
11 [mysql] 작은 용량의 파일 로드 속도가 느려진 경우 호스트웨이 2015.09.22 7104
10 MySQL에서 Query Cache 사용하기 호스트웨이 2012.12.20 7087
9 [MySQL] 무한정 늘어나는 log-bin 파일 줄이기 호스트웨이 2012.11.23 7054
8 MySQL DB 옵티마이저 사용법 호스트웨이 2015.09.18 6858
7 Mysql에서 log-slow-queries 로그 남기기 호스트웨이 2012.09.21 6811
6 phpmyadmin에서 'mcrypt 확장모듈을 불러올 수 없습니다' 에러 시 file 호스트웨이 2012.11.29 6657