본문 바로가기

컴퓨터/네트워크,인터넷

[DB] MySQL 명령어

1. 데이터베이스 접속
- # mysql -u 사용자명 -p dbname
- 설치 직후에는 root 사용자에 비밀번호가 없으므로 다음과 같이 접속하여 MySQL을 관리할 수 있다.

# mysql -u root mysql
#mysql -u ID -D dbname -p


2. 비밀번호 관련
- MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않다.
- mysqladmin이용.

# mysqladmin -u root [flush-privileges] password '새비밀번호'

- update문 이용
# mysql -u root mysql
mysql> UPDATE user SET password=password('새비밀번호') WHERE user='root';
mysql> FLUSH PRIVILEGES;

- Set Password 이용
SET PASSWORD FOR root=password('새비밀번호');

- 일단 root 비밀번호가 설정된 상태에서는 mysql이나 mysqladmin 명령을 실행할 때 -p 옵션을 붙여주고 
기존 비밀번호를 입력해야만 한다.


3. 사용자 관련

- 사용자 추가
insert into user (Host, User, Password) values('%', '사용자명', password('패스워드'));
insert into user (host, user, password) values('localhost',mysql,password('mysql'));

- 위의 방식이 에러가 날 경우
create user t_t_t_t; 
update user set Host='x.x.x.x',User='x',Password=PASSWORD('x') where User='t_t_t_t'; 

- 사용할 DB 설정 (mysql>desc db 를 실행하여 컬럼의 개수를 세어보고 갯수만큼 'Y'로 세팅)
insert into db values('%', 'db명', 'user명', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

insert into db values('localhost','mydb','mysql','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

flush privileges; (mysql reload)


- 권한 설정
update user set Select_priv ='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y';

GRANT [부여할권한] ON [대상DB명] to [사용자명] identified by '비밀번호';

GRANT ALL PRIVILEGES ON *.* to testuser@"%" IDENTIFIED BY 'test' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* to testuser@"localhost" IDENTIFIED BY 'test' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* to testuser@"testuser@210.xxx.xxx.xxx" IDENTIFIED BY 'test' WITH GRANT OPTION;

- mysql> GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY 'password';
username 이라는 사용자를 password라는 비밀번호를 갖도록 하여 추가한다. username은 dbname이라는 데이타베이스에 대해 모든 권한을 가지고 있다.
username 사용자는 로칼 호스트에서만 접속할 수 있다. 다른 호스트에서 접속하려면


- GRANT ALL PRIVILEGES ON dbname.* TO username@'%' IDENTIFIED BY 'password';
위를 또한 번 실행한다. '%'에서 홑따옴표를 주의한다.


- 불필요한 사용자 삭제는
mysql> DLETE FROM user WHERE user='username';
mysql> FLUSH PRIVILEGES;


4. 데이터베이스 관련

- 데이터베이스 생성
mysql> CREATE DATABASE dbname;

- 현재 존재하는 데이터베이스 목록을 보여준다.
mysql> SHOW DATABASES;

- 특정 데이타베이스를 사용하겠다고 선언한다.
mysql> USE dbname;

- 쓸모 없으면 과감히 삭제한다.
mysql> DROP DATABASE [IF EXISTS] dbname;
IF EXISTS 옵션은 비록 데이타베이스가 없더라도 오류를 발생시키지 말라는 의미이다.


5. 테이블 관련

- 현재 데이타베이스의 테이블 목록을 보고
mysql> SHOW TABLES;

- 테이블 구조를 살펴본다.
mysql> desc tablesname;

- 필요 없으면 삭제한다.
mysql> DROP TABLE tablename;


6. MySQL 현재 상태 보기
- mysql> status


7. script파일 실행(Oracle :start, @)
- mysql>source C:scott.sql


8. MySQL root password 재설정 방법

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 일때.....

1. # killall mysqld
2. # mysqld_safe --skip-grant &
3. # mysql

- mysql>use mysql 
- mysql>update user set password=password('newpassword') where user='root';
- mysql>flush privileges

flush privileges <-- (mysql reload) 


9. SQL실행 결과를 파일로 저장
- C:mysqlbin>mysql -uscott -ptiger scott > C:dump.txt
select * from emp;
select * from dept;
exit


10. Database 백업
- # mysqldump
mysqldump -uscott -ptiger scott > test.sql

- # BACKUP TABLE : 테이블을 데이터 파일로 백업함
mysql>BACKUP TABLE table_name[,tbl_name] TO '/path/directory'

- # RESTORE TABLE : BACKUP TABLE로 백업한 데이터를 복구한다. 
mysql>RESTORE TABLE table_name[,tbl_name] FROM '/path/directory'

출처 : http://woongstop.tistory.com/13
제주삼다수, 2L,... 오뚜기 진라면 매운... 상하목장 유기농 흰... 남양 프렌치카페 카... 고려인삼유통 홍삼 ... 종근당건강 오메가3... 요이치 카링 유무선...