Recently in DB Category

1. 테이블에 새로운 컬럼 추가

alter table tablename add column [추가할 컬럼명] [추가할 컬럼 데이타형]

2. 테이블에 컬럼타입 변경하기

alter table tablename modify column [변경할 컬럼명] [변경할 컬럼 타입]

3. 테이블에 컬럼이름 변경하기

alter table tablename change column [기존 컬럼명] [변경할 컬럼명] [변경할 컬럼타입]

4. 테이블에 컬럼 삭제하기

alter table tablename drop column [삭제할 컬럼명]

5. 테이블컬럼에 인덱스 주기

alter table tablename add index 인덱스명(인덱스를 줄 컬럼1 , 인덱스를 줄 컬럼2, ... )

6. 테이블컬럼에 인덱스 삭제하기

alter table tablename drop index 인덱스명;

7. 테이블에 Primary Key 만들기

alter table tablename add primary key (키를 줄 컬럼명1 , 키를 줄 컬럼명2, ...)

8. 테이블에 Primary Key 삭제하기

alter table tablename drop primary key;

9. 테이블명 바꾸기

alter table 기존테이블명 rename 새로운테이블명

10. 인덱스 생성

CREATE [UNIQUE] INDEX index_name ON tbl_name (col_name[(length]),... )

11. 인덱스 삭제

DROP INDEX index_name


Debian Install MySQL

| No Comments | No TrackBacks
1. aptitude install mysql-server

2. root비밀번호 변경
mysqladmin -u root password [your password]
mysqladmin reload -u root -p
Enter password: [your password]

3. 외부접근 가능하도록 설정
cd /etc/mysql
vi my.cnf
bind-address       = 127.0.0.1
-> #bind-address       = 127.0.0.1
정리를 잘 해놓으셔서 두고두고 보기 위해 내용을 퍼왔다.

출처 - 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'