MySQL 명령어 정리 (MySQL Commands)

| 2 Comments | No TrackBacks
정리를 잘 해놓으셔서 두고두고 보기 위해 내용을 퍼왔다.

출처 - http://blog.naver.com/yangsewon?Redirect=Log&logNo=140052849317


-----------------------------------------------------------------------------------

1. 데이터베이스 접속

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

 

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'));

 

- 사용할 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'

No TrackBacks

TrackBack URL: http://www.thethinkings.com/mt/mt-tb.cgi/41

2 Comments

안녕하세요?
정말 좋은 자료 감사합니다~!
grant 명령어에 " "가 들어가는 걸 모르고
' ' 사용해서 5시간째 해매었네요
이 글을 읽지 못 했다면 앞으로 한동안 더 고생할뻔 했습니다
다시한번 감사드립니다

Leave a comment