10 MySQL characterset 변경
조인상
1480 2015-06-15
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ MySQL 기본 characterset 값은 latin1 이기 때문에 utf-8 캐릭터셋이 필요할 경우 변경해줘야 한다. 1. Query 로 변경 mysql> SET character_set_client = utf8; mysql> SET character_set_results = utf8; mysql> SET character_set_connection = utf8; mysql> ALTER DATABASE <Database name> DEFAULT CHARACTER SET utf8; mysql> commit; : DB 재기동시에 my.cnf 파일에 명기된 캐릭터셋으로 다시 설정된다. 영구히 변경하려면 my.cnf 를 수정한 후 DB를 재기동한다. 2. my.cnf 수정 [mysql] default-character-set=utf8 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql character-set-client-handshake=FALSE init_connect=SET collation_connection = utf8_general_ci init_connect=SET NAMES utf8 default-character-set=utf8 character-set-server=utf8 collation-server=utf8_general_ci old_passwords=1 [client] default-character-set=utf8 [mysqldump] default-character-set=utf8
9 MySQL DB 이전 절차
조인상
5810 2014-10-31
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ A서버의 mysql DB를 B서버로 이전하고자 하는 경우 절차 DB데이터의 계정이 account, 패스워드가 pass 이고 database name이 dbname 인 경우로 가정한다. A서버 ---------------------- 1. mysql 백업 # mysqldump -u account -ppass dbname > dbname.bak.sql 2. 백업데이터 이전 dbname.bak.sql 파일을 FTP 등을 이용하여 B서버로 복사해 준다. B 서버 ---------------------- 1. database 생성 ( B서버의 root 패스워드가 rootpass 인 경우로 가정 ) # mysqladmin -uroot -prootpass create dbname 2. 유저 생성 # mysql -uroot -prootpass mysql mysql> grant all privileges on dbname.* to account@localhost identified by 'pass' with grant option; mysql> exit 3. 데이터 복구 # mysql -u account -ppass dbname < dbname.bak.sql
8 [MySQL] MySQL 연습DB
조인상
14704 2012-02-22
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ MySQL 연습DB 멤버만 조회가능 : http://www.ischo.net/6939
7 MySQL root 패스워드 분실시 패스워드 변경
조인상
6302 2011-11-21
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ MySQL root 패스워드 분실시 변경 1. MySQL 종료 # service mysqld stop 2. 권한 없이 시작 # mysqld_safe --skip-grant-tables & 3. root로 접속(패스워드 필요없음) # mysql -u root 4. root 패스워드 변경 SQL> udpate user set password = password('패스워드') where user = 'root'; SQL> flush privileges; 5. MySQL 다시 시작 # service mysqld start
6 MySQL Innodb 에 대하여
조인상
8560 2011-05-02
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 출처 : http://blog.naver.com/dreami79?Redirect=Log&logNo=60101193970 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1. What is Innodb Table space ? - 그 동안 Myisam 방식으로 테이블 스페이스를 사용하던 mysql은 rollback 이 되지 않는다. 다른 데이터베이스 와 달리 autocommit 이 자동으로 실행 하여 데이터 베이스의 트렌젝션시 발생되는 lock을 처리 하기 힘들었다. - innodb는 오라클 처럼 shared tablespace ( ibdataN) 와 로그파일 (ib_logfileN ) 로 구성된다. 로그파일은 트랜젝션들을 처리하는 오라클의 아카이브 로그 같이 생각 하면 된다. 2. Mysql의 주요 특징 참고 : Mysql Technical Reference fo Ver 5.0 : 16장 InnodB Configureation - rollback 을 구현 할수 있다. - transaction isolation Level : READ-UNCOMMITED, READ-COMMITED, REPEATABLE-READ, SERIALIZABLE - innodb_buffer_pool_size : MyIsam 방식과 달리 buffer poll을 이용하여 인덱스와 raw data를 캐싱한다. 따라서 사용량이 많아 지면 tablespace Disk I/O 가 그만큼 줄어 든다 pool의 용량은 real memory의 80% 까지 줄수 있으나, 다른 어플리 케이션과 사용시 너무 많이 주게 되면 운영 체제의 paging을 일으키게 된다. ( 참고로 오라클은 SGA 를 50%로 권고 한다) 또 32bit 시스템의 경우 2 ~ 3.5G의 제한되므로 너무 많이 주면 안된다고 한다. - innodb_data_file_path 아직 오라클 같이 Shared Table Space 를 온라인상에서 추가 하기 힘들다. 오직 my.cnf 환경 파일로 생성이 되고 변경 된다. 형식 innodb_data_file_path = [파일위치1/]파일명1:파일1사이즈:autoextend:max:MAX파일 사이즈 파일 간의 구분자는 ";" 이고 파일의 속성 구분자는 ":" 이며 autoextend:max:2000M 는 맨마지막 파일에만 해당된다. innodb_file_per_table 를 사용하면 이전 isam 같이 데이터 베이스 폴더 안에 table_name.ibd 라는 파일이 생긴다. 사용예는 다음과 같다. innodb_data_home_dir=/export/DATABASE/MyData innodb_data_file_path = ibdata1:500M;ibdata2:500M;ibdata3:500M;ibdata4:200M:autoextend:max:2000M 3. InnoDB 만들기 1) Mysql 다운로드 wget http://downloads.mysql.com/archives/mysql-5.4/mysql-5.4.2-beta-linux-i686-glibc23.tar.gz 2) 링크걸기 tar xvfz mysql-5.4.2-beta-linux-i686-glibc23.tar.gz mv mysql-5.4.2-beta-linux-i686-glibc23 /usr/local/mysql-5.4.2 ln -s /usr/local/mysql-5.4.2 /usr/local/mysql 3) 구동 스크립 등록하기 ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 4) InnoDb 설정 cp -pr /usr/local/mysql/support-files/my-innodb-heavy-4G.cnf /etc/my.cnf vi /etc/my.cnf [mysqld] ... ## 한글(euckr) 설정 character-set-client-handshake=FALSE init_connect = SET collation_connection=euckr_korean_ci init_connect = SET NAMES euckr default-character-set = euckr character-set-server = euckr collation-server = euckr_korean_ci language=korean ... # 풀사이즈 조절 (디폴트 2G <- 1G) innodb_buffer_pool_size = 1G ... # 바이너리 로그 주석처리(필요에 따라..) #log-bin=mysql-bin ... log-error = /usr/local/mysql/logs/mysql_error.log log-slow-queries = /usr/local/mysql/logs/mysql_slow.log ... innodb_data_file_path =ibdata1:4000M;ibdata2:100M;ibdata3:100M:autoextend innodb_data_home_dir = /usr/local/mysql/ibdata innodb_log_group_home_dir = /usr/local/mysql/iblogs innodb_log_arch_dir = /usr/local/mysql/iblogs 4. myisam -> innodb 로 바꿔보자. 1) 기존 데이터베이스 스키마 덤프 2) 기존 데이터베이스 데이타 덤프 // mysql 로그인 # mysql -u -p Enter password : 비밀번호 (첫 접속시에는 비밀번호 없음) // innodb 설정 상태 확인 mysql> SHOW VARIABLES LIKE 'have_innodb'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | have_innodb | YES | +---------------+-------+ 1 row in set (0.00 sec) // 설정 상태 확인 mysql> SHOW STATUS LIKE '%innodb%'; 3) 데이터베이스 생성 mysql> create database testdb; mysql> grant all on testdb.* to testdb identified by 'testdb'; mysql> flush privileges; 4) 기존 데이터베이스 스키마 복구 5) 테이블 Type innodb로 변경
5 MySQL Binary-Log 에 대하여
조인상
7185 2010-12-10
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 출처 : 한국MySQL 한글매뉴얼 참조.(MySQL Replication 개요) +++++++++++++++++++++++++++++++++++++++++++++++++++++++ mysql의 바이너리 로그의 목적 1. replication 동기화 2. 지난 쿼리의 저장 3. 데이터베이스 복구 1. Replication 동기화 MySQL은 단 방향, 즉 비동기 리플리케이션 (asynchronous replication)을 지원하는데, 하나의 서버는 마스터로 동작하고, 나머지 한 개 이상의 다른 서버들은 슬레이브로 동작한다. 이것은 MySQL클러스터의 특징인 동기화 (synchronous) 리플리케이션과는 반대되는 개념이다. ( Chapter 15, MySQL 클러스터)를 참조할 것. 싱글-마스터 리플리케이션에서, 마스터 서버는 업데이트를 자신의 바이너리 로그 파일에 작성하고 로그 로테이션의 트레이스 (trace)를 유지하기 위해 이 파일의 인덱스를 유지 관리 한다. 바이너리 로그 파일은 다른 슬레이브 서버에 전달되는 업데이트 레코드 역할을 한다. 슬레이브가 자신의 마스터에 연결이 될 때, 마스터 정보를 자신이 마지막으로 업데이트가 성공했을 때 읽었던 로그에 전달한다. 슬레이브는 그 시간 이후에 발생한 모든 사항에 대한 업데이트를 전달 받고, 블록 (block)을 한 후에 마스터가 새로운 업데이트를 알려 주기를 기다리게 된다. 2. 지난 쿼리의 저장 바이너리 로그는 디비에 업데이트가 일어나는 모든 쿼리가 시간과 함께 기록된다. 형식은 mysql/var/호스트이름-bin.넘버 이 넘버는 디비 재시작시마다 카운트가 올라간다. * 업데이트가 일어날때마다 모든 쿼리가 저장되기 때문에 나중에 용량이 많이 늘어날수 있다. * 서버 용량상 바이너리로그를 저장하지 않으려면 my.cnf에서 log-bin 부분을 제거하면 된다. 다음 명령어로 bin-log를 일반쿼리로 변경할 수 있다. # mysqlbinlog /usr/local/mysql/var/host-bin.00003 > view.sql 3. 데이터베이스 복구에 이용 bin-log를 일반쿼리로 변경하여 백업에 이용할 수도 있다. # mysqlbinlog /usr/local/mysql/var/host-bin.00003 > backup.sql 이를 이용해서 오라클 처럼 time-based recovery도 가능해진다. # mysqlbinlog --start-datetime="20100101 00:00:00" --stop-datetime="20101231 23:59:59" host-bin.00003 > backup.sql 추출된 쿼리를 다음 명령어로 복구할 수 있다. # mysql -uroot -p < backup.sql
4 Mysql bin-log 커졌을때 (bin-log 관리하기)
조인상
13343 2010-12-09
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ mysql DB에서 replication을 이용할 경우 bin-log를 활성화 시켜놔야 하는데 default 상태에서는 무한정 bin-log가 커지게 된다. 어느정도 운영한 DB 시스템의 <hostname>.bin 파일을 보면 많이 커져 있을 수 있다. 이때는 bin-log 크기를 줄이기 위한 옵션을 설정해 주면 된다. /etc/my.cnf 파일 수정 binlog_cache_size = 1M # binlog cache 사이즈 max_binlog_size = 500M # bin로그 maximum 사이즈 expire_logs_days = 3 # 로그 만료기간 로그 만료기간 수정법2 : mysql 접속후 수정하기 mysql> show variables; 에서 나오는 expire_logs_days 항목을 확인하고 mysql> set global expire_logs_days=3; 과 같이 수정해준다. 바이너리 로그 리스트 확인 mysql> show binary logs; mysql> show master logs; 바이너리 로그 삭제 mysql> purge master logs to 'mysql-bin.000010'; 지정된 바이너리 로그 이하의 파일이 삭제됨. mysql-bin.000001~0000009 까지 삭제됨.
3 mysql 에서 charset 확인방법
조인상
8950 2010-05-11
본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 언어설정 확인요령 mysql -h ip -u id -p password mysql>\s -------------- mysql Ver 12.22 Distrib 4.0.16, for pc-linux (i686) Connection id: 1612 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Server version: 4.0.16-Max Protocol version: 10 Connection: Localhost via UNIX socket Client characterset: latin1 Server characterset: latin1 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 9 hours 47 min 20 sec Threads: 6 Questions: 506708 Slow queries: 0 Opens: 16 Flush tables: 1 Open tables: 10 Queries per second avg: 14.379 ----------------------------------------------------------------------------------------------------------------------- 설정하기 mysql> SET character_set_client = euckr; mysql> SET character_set_results = euckr; mysql> SET character_set_connection = euckr; mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET euckr; commit; ------------------------------------------------------------------------------------------------------------------------- 환경설정화일에 직접 설정하기 my.ini 를 열고 편집 [mysqld] default-character-set=euckr character-set-client-handshake = FALSE ---------------------------------------------------------------------
2 mysql 에러 종류
조인상
10139 2010-05-11
본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1. error 2002: can't connect to local mysql server through socket '/tmp/mysql.sock'(111) - mysql 서버 데몬이 아직 시작되지 않은 경우에 발생하는 에러. 2. access to database denied - 데이터베이스에 접근할 수 없는 권한을 가진 user 가 접속한 경우. 3. can't connect to local mysql server can't connect to mysql server on some_hostname - mysql 서버 데몬이 실행되지 않았거나, 잘못된 소켓이나 포트 번호에 연결을 시도하는 경우. - 우선 mysqld 데몬이 작동하는지 ps 명령어를 통해서 확인해본다. 4. error 1044 : access denied for user : 'aaa@ localhost' to database 'mysql' - 'aaa' 유저에 대해서 mysql 데이터베이스에 접근할 수 없기 때문에 발생하는 에러. 5. error 1045 : access denied for user : 'root@localhost'; (using password: no) - root 패스워드가 설정되어 있는데, root 패스워드 없이 접근을 시도했을 때 나타나는 에러. 6. ERROR 1006: Can't create database 'testdb'. (errno: 28) - 하드디스크 파티션 용량이 꽉참. 7. ERROR 1016: Can't open file: 'now.ISM'. (errno: 126) - 테이블 정보를 담고있는 파일이 깨졌을 경우 8. Got error: 1030: Got error 127 from table handler - 테이블이 깨졌을 경우. - 서버를 옮기면서 data 디렉토리에 있는걸 dump 하지않고 copy 해서 옮길 경우 에러생김. - isamchk 명령을 써서 해결가능할 수도 있습니다. 안될 수도 있습니다. ----------------------------------------------------------------------- Error code 1: 명령이 허용되지 않음 Error code 2: 그런 파일이나 디렉토리가 없음 Error code 3: 그런 프로세스가 없음 Error code 4: 중단된 시스템 호출 Error code 5: 입력/출력 오류 Error code 6: 장치가 설정되지 않았음 Error code 7: 인수 명단이 너무 깁니다 Error code 8: Exec 형식 오류 Error code 9: 잘못된 파일 기술자 Error code 10: 자식 프로세스가 없음 Error code 11: 자원이 일시적으로 사용 불가능함 Error code 12: 메모리를 할당할 수 없습니다 Error code 13: 허가 거부됨 Error code 14: 잘못된 주소 Error code 15: 블럭 장치가 필요함 Error code 16: 장치나 자원이 동작 중 Error code 17: 파일이 존재합니다 Error code 18: 부적절한 장치간 연결 Error code 19: 그런 장치가 없음 Error code 20: 디렉토리가 아닙니다 Error code 21: 디렉토리입니다 Error code 22: 부적절한 인수 Error code 23: 시스템에 열린 파일이 너무 많음 Error code 24: 열린 파일이 너무 많음 Error code 25: 장치에 대해 부적절한 ioctl Error code 26: 실행 파일 사용 중 Error code 27: 파일이 너무 큽니다 Error code 28: 장치에 남은 공간이 없음 Error code 29: 잘못된 탐색 Error code 30: 읽기전용 파일 시스템 Error code 31: 연결이 너무 많음 Error code 32: 파이프가 깨어짐 Error code 33: 영역을 벗어난 수치 인수 Error code 34: 범위를 벗어난 수치 결과 Error code 35: 자원 교착상태를 피했습니다 Error code 36: 파일 이름이 너무 깁니다 Error code 37: 사용가능한 잠금장치가 없음 Error code 38: 함수가 구현되지 않았음 Error code 39: 디렉토리가 비어있지 않음 Error code 40: 기호 연결의 단계가 너무 많음 Error code 41: 알 수 없는 오류41 Error code 42: 적당한 형을 가진 메시지가 없음 Error code 43: 식별자 제거됨 Error code 44: 범위를 벗어난 채널 번호 Error code 45: 등급 2가 동기화되지 않음 Error code 46: 등급 3 멎었음 Error code 47: 등급 3 리셋 Error code 48: 범위를 벗어난 링크 번호 Error code 49: 규약 구동기에 연결되지 않음 Error code 50: 사용 가능한 CSI 구조가 없음 Error code 51: 등급 2 멎었음 Error code 52: 부적절한 교환 Error code 53: 잘못된 요청 기술자 Error code 54: 교환이 가득참 Error code 55: anode가 없음 Error code 56: 부적절한 요청 코드 Error code 57: 부적절한 슬롯 Error code 58: 알 수 없는 오류58 Error code 59: 잘못된 폰트 파일 형식 Error code 60: 장치가 스트림이 아님 Error code 61: 사용 가능한 자료가 없음 Error code 62: 타이머 시간 초과됨 Error code 63: 스트림 자원 부족 Error code 64: 기계가 네트워크 상에 있지 않습니다 Error code 65: 패키지가 설치되지 않음 Error code 66: 원격 개체입니다 Error code 67: 링크가 손상되었습니다 Error code 68: 광고 오류 Error code 69: Srmount 오류 Error code 70: 전송 중 통신 오류 Error code 71: 규약 오류 Error code 72: 여러개의 hop이 시도됨 Error code 73: RFS에 국한된 오류 Error code 74: 잘못된 메시지 Error code 75: 정의된 자료형으로 쓰기엔 너무 큰 값 Error code 76: 이름이 네트워크 상에서 단일하지 않음 Error code 77: 파일 기술자가 잘못된 상태에 있음 Error code 78: 원격 주소가 바뀌었음 Error code 79: 필요한 공유 라이브러리에 접근할 수 없습니다 Error code 80: 손상된 공유 라이브러리에 접근함 Error code 81: a.out의 .lib 절이 손상되었음 Error code 82: 너무 많은 동적 라이브러리와 링크하려고 시도하였음 Error code 83: 공유 라이브러리를 직접 실행할 수 없습니다 Error code 84: 부적절하거나 불완전한 다중바이트 또는 광역 문자 Error code 85: 중단된 시스템 호출은 재시작되어야 합니다 Error code 86: 스트림 파이프 오류 Error code 87: 사용자가 너무 많음 Error code 88: 비소켓상의 소켓 동작 Error code 89: 목적지 주소가 필요함 Error code 90: 메시지가 너무 깁니다 Error code 91: 소켓에 대한 규약이 잘못됨 Error code 92: 규약 사용 불가능 Error code 93: 규약이 지원되지 않음 Error code 94: 소켓 타입이 지원되지 않습니다 Error code 95: 명령이 지원되지 않음 Error code 96: 규약군이 지원되지 않음 Error code 97: 주소군이 규약에서 지원되지 않음 Error code 98: 주소가 이미 사용 중입니다 Error code 99: 요청된 주소를 배정할 수 없습니다 Error code 100: 네트워크가 죽었습니다 Error code 101: 네트워크가 접근 불가능합니다 Error code 102: 네트웍이 reset때문에 연결을 끊었습니다 Error code 103: 소프트웨어가 연결 중단을 초래했습니다 Error code 104: 연결이 상대편에 의해 끊어짐 Error code 105: 사용 가능한 버퍼 공간이 없음 Error code 106: 전송 종료지점이 이미 연결되어 있습니다 Error code 107: 전송 종료지점이 연결되어 있지 않습니다 Error code 108: 전송 종료지점이 지난 후에 보낼 수 없습니다 Error code 109: 참조가 너무 많음: 연결할 수 없습니다 Error code 110: 연결 시간 초과 Error code 111: 연결이 거부됨 Error code 112: 호스트가 죽었습니다 Error code 113: 호스트로 갈 루트가 없음 Error code 114: 이미 진행 중인 명령 Error code 115: 지금 진행 중인 명령 Error code 116: 끊어진 NFS 파일 핸들 Error code 117: 구조에 청소가 필요합니다 Error code 118: XENIX named 타입 파일이 아님 Error code 119: 사용 가능한 XENIX 세마포어가 없음 120 = Didn't find key on read or update 121 = Duplicate key on write or update Error code 122: Disk quota exceeded 123 = Someone has changed the row since it was read; Update with is recoverable 124 = Wrong index given to function Error code 125: 알 수 없는 오류125 126 = Index file is crashed / Wrong file format 127 = Record-file is crashed 131 = Command not supported by database 132 = Old database file 133 = No record read before update 134 = Record was already deleted (or record file crashed) 135 = No more room in record file 136 = No more room in index file 137 = No more records (read after end of file) 138 = Unsupported extension used for table 139 = Too big row (>= 16 M) 140 = Wrong create options 141 = Duplicate unique key or constraint on write or update 142 = Unknown character set used 143 = Conflicting table definition between MERGE and mapped table 144 = Table is crashed and last repair failed 145 = Table was marked as crashed and should be repaired 146 = Lock timed out; Retry transaction 147 = Lock table is full; Restart program with a larger locktable 148 = Updates are not allowed under a read only transactions 149 = Lock deadlock; Retry transaction 출처:[http://blog.empas.com/jjh7266/9473499]
1 mysql 유저,디비생성
조인상
7201 2010-05-11
본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ MySQL 은 기본적으로 mysql 이라는 DB내에 있는 3개의 테이블(user, db ,host)로 사용자 권한을 설정합니다 설치후에는 기본적으로 root 만 유저로 등록 됩니다. 다른 사용자는 user 와 db 에 등록해 주어야 합니다. *지금 하는 모든 내용은 MySQL 메뉴얼에 이미 다 나와 있습니다. 사용자 권한은 2가지로 나누어지는데.... 1. MySQL서버에 접속할 수 있는 기능(user 테이블 사용) 2. 각 DB를 사용할 수 있느 기능 (db 테이블 사용) 한가지 주의 하실점은 user 테이블에 권한을 'Y'로 주면 그 권한이 모든 DB 에 적용이 된다는 점입니다. 심지어 권한을 설정하는 mysql DB까지도 말입니다. 그러므로 user 테이블에는 반드시 접속만 가능하도록 모든 기능을 'N' 로 주시고 db 테이블에서 사용자에게 적당한 DB를 주는 것이 매우 바람직 합니다. 자 다음 시나리오 따른 실제 작업 화면을 보시고 참고 하시기 바랍니다. -------------- 처음에 root 로 로그인 했다는 가정하에 myuser 라는 사용자를 추가 하고 그 사용자에게 MYUSER 라는 DB를 생성해 주고 해당 DB 에서 모든 권한을 준다 ------------- [root@home /root]# mysql mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1961 to server version: 3.22.20a-log Type 'help' for help. //사용자를 등록합니다. 접속할 수 있는 권한만! mysql> insert into user values ('localhost','myuser',password('mypasswd'),'N','N','N','N','N' -> ,'N','N','N','N','N','N','N','N','N'); Query OK, 1 row affected (0.00 sec) // 사용자가 사용할 DB와 권한을 줍니다. mysql> insert into db values('localhost','MYUSER','myuser','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); Query OK, 1 row affected (0.00 sec) mysql> q Bye // DB를 만들어 줍니다 [root@home /root]# /usr/local/mysql/bin/mysqladmin create MYUSER Database "MYUSER" created. // 권한 테이블을 다시 읽도록 서버를 Reload 합니다 [root@home /root]# /usr/local/mysql/bin/mysqladmin reload // 이제 만들어진 사용자로 MySQL서버에 로그인 합니다. [root@home /root]# mysql -umyuser -pmypasswd MYUSER Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1965 to server version: 3.22.20a-log Type 'help' for help. mysql> create table mytable(id int , name char(10) ) ; Query OK, 0 rows affected (0.01 sec) mysql> insert into mytable values(1,'loveme'); Query OK, 1 row affected (0.00 sec) mysql> select * from mytable ; +------+--------+ | id | name | +------+--------+ | 1 | loveme | +------+--------+ 1 row in set (0.00 sec) mysql> ------------------------------------------------------- mysql이 버전4가 되면서 몇가지 필드가 추가되었다. 이를 위해 유저생성을 다음과 같이 한다. INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Updrown;background-color: yellow;font-weight:bold'>ate_priv, Delete_priv, Crerown;background-color: yellow;font-weight:bold'>ate_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Crerown;background-color: yellow;font-weight:bold'>ate_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, ssl_type, ssl_cipher, x509_issuer, x509_subject, max_questions, max_updrown;background-color: yellow;font-weight:bold'>ates, max_connections) VALUES("localhost", "dbman", password("dbman"), "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "", "", "", "", "0", "0", "0"); [ mysql db 삭제후 유저 재성성 ] mysql db 삭제 방법 use mysql; show table status; select * from db where user = "계정"; select * from user where user = "계정"; delete from db where user = "계정"; delete from user where user = "계정"; drop database DB명; 생성 create database 디비명; grant all privileges on 디비명.* to 유저명@'%' identified by '패스워드' with grant option; grant all privileges on 디비명.* to 유저명@'localhost' identified by '패스워드' with grant option; flush privileges;