1. 데이터베이스 접속
- # mysql -u 사용자명 -p dbname
- 설치 직후에는 root 사용자에 비밀번호가 없으므로 다음과 같이 접속하여 MySQL을 관리할 수 있다.
# mysql -u root mysql
#mysql -u ID -D dbname -p
#mysql -u ID -D dbname -p
2. 비밀번호 관련
- MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않다.
- mysqladmin이용.
- 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';
- 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
- 불필요한 사용자 삭제는
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
- 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
- # 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
'데이터베이스' 카테고리의 다른 글
mysql myisamchk repair table를 이용한 복구 (0) | 2012.02.22 |
---|---|
Mysql 대용량 데이터 덤프 및 LOAD DATA IMPORT (0) | 2011.04.20 |
mysql limit 기능 (0) | 2011.02.21 |