요즘 열심히 보고 있는 책이 아니라 볼려고 하는 책이다. ㅎㅎ
MySQL root 패스워드 분실했을 경우
1>암호 초기화
# killall mysqld (데몬을 죽입니다)
# cd /usr/local/mysql (mysql이 설치된곳 )
# ./bin/safe_mysqld --skip-grant &
초기화 완료
2>새로운 암호로
# ./bin/mysql (sql 실행)
mysql>use mysql
mysql>update user set password=password('새암호') where user='root';
예>update user set password=password('1234') where user='root';
mysql> FLUSH PRIVILEGES
mysql> exit
# ./bin/mysql -uroot -p1234 접속 테스트
백업&복구(전체/부분/테이블)
./mysql -u root -p[비번] test > test_db.sql 백업
mysql> create database test;
./mysql -u root -p test < test_db.sql 복구(단, test라는 database 생성이 선행되어야함.)
풀 백업
#mysqldump -u root -p 테이블명 -h 호스트> backup_all.sql 백업
#mysql -u root -p 테이블명 -h 호스트< backup_all.sql 복구
특정 테이블만 백업/복구
backup table table_name to '/path/bakcup';
restore table table_name from '/path/backup';
데이터베이스 구동/종료/확인
./mysqladmin version
./bin/safe_mysqld& 시작
./mysqladmin -u root shutdown 종료
./mysqlshow
./mysqlshow mysql
./mysql -e "select host,db,user from db" mysql
MySQL 특정 테이블 (dump) 받기
testdb 의 모든 테이블의 스키마만 덤프받으려 할 경우
$ mysqldump -u testuser -p -d testdb > testdb.sql
testdb 의 testtable1 테이블의 스키마 및 데이타를 모두 덤프 받으려 할 경우
$ mysqldump -u testuser -p testdb testtable1 > testdb_testtable1.sql
testdb 의 testtable1 테이블의 스키마 및 데이타중 일부를 덤프 받으려 할 경우
( no 가 testtable1 의 필드명일 경우 )
$ mysqldump -u testuser -p testdb testtable1 -w 'no > 1 and no < 100' > testdb_testtable1.sql
옵션설명 :
-u : 사용자명 입력
-p : 비밀번호 입력
-d : 데이타 덤프 안함
-w : WHERE 절 입력함 (단일 따옴표인것에 주의)
MySql 기본명령어 모음[콘솔사용시]
[기본적인 명령어]
데이터 베이스 테이블 구조보기
$mysqlshow -u user -ppassword
필드의 내용보기
$mysqlshow DB -u user -ppassword
DB내 테이블 생성하기
mysql>create table 테이블명 (필드명 데이터형, 필드명 데이터형...);
(참고) 데이터형
INT(n) : n개의 길이를 가지는 정수형
DEC(x,y) : x개의 정수자리와 y개의 소수자리를 가지는 데이터형
varchar(n) : n=1~255 사이의 문자형
char(n) : 7개의 8비트 문자형
DATE : yyyy-mm-dd 형식의 날짜
TIME : hh-mm-ss 형식의 시간
등등..
테이블의 목록 보기
mysql>desc 테이블명;
필드에 내용추가하기
1) txt 형식의 화일로 각 필드의 내용을 적는다.
단, 각 내용을 구분하는 것은 탭키를 사용한다.
2) null 값일 경우는 \n 이라고 쳐준다.
3) mysql>load data local infile "*.txt" into table 테이블명;
필드의 데이터 업데이트-전체수정
mysql>delete from 테이블명;
mysql>load data local file "*.txt" into table 테이블명;
필드의 데이터 업데이트-부분수정
mysql>update 테이블명 set 필드 = "바꿀값" where 필드="검색값";
[좀더 복잡한 명령어]
화일을 통째로 테이블에 집어넣기
mysql> load data infile 화일절대경로/화일명 into table 테이블명
-> fields terminated by 구분자;
테이블에서 필드 만들기
mysql> alter table 테이블명 add 필드명 필드자료형;
ex) alter table mytable add name varchar(20);
테이블에서 필드 삭제하기
mysql> alter table 테이블명 drop column 필드명;
ex) alter table mytable drop name;
테이블 이름 바꾸기
mysql> alter table 테이블명 rename 새테이블명;
테이블에서 데어터를 검색해서 외부 화일로 빼돌리기
mysql> select * from 테이블명 where 검색할필드명 = 검색조건
-> into outfile 저장할 화일명
-> field terminated by 구분자;