mysql 정리
mysql 강좌
**mysql데이터 베이스에서 사용자 생성, 암호 설정등이 가능하다.
mysql 데몬 실행
#>mysqld_safe & 또는 safe_mysqld &
or #>/usr/local/mysql/bin/mysqld_safe --user=root &
mysql root 계정으로 접속
#>mysql -uroot
or #>/usr/local/mysql/bin/mysql -uroot mysql
데이터베이스 목록 보기
mysql>show database;
mysql 데이터베이스 선택
mysql>use mysql;
테이블보이기
mysql>show tables;
user테이블 구조보기
mysql>explain user; = desc user; -->둘다 같은 명령어로 테이블 구조를 볼수 있다.
나가기
mysql>quit
mysql root 사용자 암호바꾸기
udpdate문 이용하기
mysql>update user set password=password('new-password') where user='root';
mysql>flush privileges; (update문은 이용할땐 꼭 사용해야함)
set password 이용하기
mysql>SET PASSWORD for root=password('new-password'); ->flush privileges 할필요없음
mysqladmin 이용하기(안됨)
#>mysqladmin -uroot -password new-password
변경된 password 확인하기
mysql>user mysql ;
mysql>select host, user, password from user where user='root'
잊어버린 root암호 다시 설정하기
#>killall mysqld
#>./mysqld_safe --skip-grant-tables & (또는 # ./mysqld_safe -sg &) -> grant-table을 사용하지 않고 mysql 데몬시작
#>mysql -uroot mysql -> 접속
mysql>update user set password=('new-password') where user='root';
mysql>flush privileges; (update문은 이용할땐 꼭 사용해야함)
새로운 사용자 등록
mysql>grant all privileges on *.* to skydriver@localhost identified by 'password' with grant option;
->localhost의 skydriver에게 'password'란 암호를 mysql의 모든 테이블에(ON *.*) 모든 권한(ALL PRIVILEGES)을 부여
mysql>flush privileges;
-------특정 데이터 베이스에만 권한 주고 싶을때-------------
권한을 부여하고 싶은 데이터 베이스를 생성한다.
mysql>create database test1;
해당 데이터 베이스에 대한 사용자를 등록한다.
mysql>grant all privileges on test1.* to test1@localhost identified by 'password';
로그아웃
mysql>quit
/usr/local/mysql/bin/mysql -utest1 -p
test1 데이터베이스를 사용하기 위해 선택해준다.
mysql>use test1;
테이블 생성
mysql>create create table testone (user char(20) not null, hobby varchar(2), region varchar(20), name varchar(30), primary key (user));
데이터 삽입
mysql>insert into testone (user, hobby, region, name) values("best02","a","b","c");
테이블 확인하기
mysql> select * from testone;
+--------+-------+--------+------+
| user | hobby | region | name |
+--------+-------+--------+------+
| best02 | a | b | c |
+--------+-------+--------+------+
1 row in set (0.00 sec)
---------------------------------------------------
mysql>grant all privileges on *.* to admin@localhost identified by 'password' withd grant option;
mysql 데이터 디렉토리 구조보고
#>mysqladmin variables (mysqladmin -uroot -p variables는 암호걸려 있을때 사용가능)
새로운 데이터베이스 생성
mysql>create database testdb; 또는
#>mysqladmin -uroot -p create testdb;
데이터베이스 권한 넘겨주기
mysql>grant all on testdb.* to skydriver; ->testdb란 데이터베이스에 skydriver사용자 권한으로 넘겨준다는 뜻
테이블 만들기
mysql>create table testone (user char(20) not null, hobby varchar(20), region varchar(20),
name varchar(30), primary key(user));
->testone이라는 테이블 만들기(데이터베이스를 선택해야함)
테이블 지우기
mysql>drop table testone;
테이블에 데이터를 넣는 방법(안됨)
mysql>load data local infile "testone.sql" into table testone;
테이블의 필드와 레코드 확인
mysql>select * from testone;
insert문을 사용하여 데이터 입력하기
mysql>insert into testone (user,hobby, region, name) values("best02", "a","b","c");
테이블로 정보 추출하기(select 문)
mysql>select [검색대상] from [검색할 테이블 명] where [검색조건];
테이블 저장된 데이터 지우기(delete 문)
mysql>delete from testone; ->drop과는 달리 테이블 구조는 유지되고, 안에 내용만 삭제된다.
테이블 데이터 업데이트하기(update 문)
mysql>update testone set 해당필드이름="수정데이터" where name="해당 행 이름";
mysql>update teston set hobby="게임" where user="best01" ->best01이란 유저의 hobby를 게임으로 수정
필드 추가/삭제/변경(alter문)
mysql>alter table [테이블명] add column / drop column [추가필드명] [변수타입];
mysql>alter table testone add column mail varchar(30);
->testone 테이블에 mail이란 varchar(30)타입의 필드를 추가
mysql>alter table testone change column mail address varchar(30);
->testone 테이블에 mail을 address로 varchar(30)인 필드로 변경
mysql 데이터 백업 및 복구(데이터베이스가 잇어야 복구가 가능함)
#>mysqldump -u [db사용자] -p [백업할 데이터 베이스 이름] > [파일이름]
#>mysqldump -u root -p jungbo > jungbo.sql ->jungbo라는 데이터베이스를 jungbo.sql로 백업
#>mysql -u root -p jungbo < jungbo.sql ->jungbo라는 덤프파일을 jungbo데이터 베이스에 복구
데이터 베이스가 삭제된후 복구할때 빈 데이터 베이스를 생성하지 않고, 복구를 하면 복구가 되지 않는다. 이때는 create database 명령으로 빈 데이터베이스를 생성한후 복구하면 복구가 가능하다.
mysql 데이터 전체 백업 및 복구
#>mysqldump -u root -p -A > all.sql [root 사용자가 데이터베이스 all.sql이란 파일로 전체백업]
#>mysql -u root -p -A < all.sql [all.sql이란 전체백업 파일로 디비복구] 이때 데이터 베이스를 내려야한다.
