끄적끄적

MySQL 명령어

2017. 8. 29. 21:06
반응형

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'


반응형

'컴퓨터 > 기타' 카테고리의 다른 글

리눅스(Linux) 명령어 모음  (0) 2017.10.07
MySQL 명령어 모음  (0) 2017.08.28
vi 편집기 명령어 모음  (0) 2017.05.24
vi 편집기 사용법  (0) 2017.05.21
[프로그래밍/알고리즘] 정렬(sort) 소스 모음  (0) 2017.05.19
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]