테스트 사이트 - 개발 중인 베타 버전입니다

mysql 기본 사용법

mysql 기본 사용법


1. Mysql 기본 사용법

 

->Mysql 데이터베이스 접속하기

# mysql -u root mysql

 

-> mysql 관리자 root 패스워드 설정하기

# mysql -u root mysql

mysql> update user set password = password('shcm0816') where user = ' root';

 

-> 빠져나간후 데이터베이스를 재시작

# mysqladmin -u root reload

 

->패스워드 입력

# mysql -u root -p mysql

 

< 여러가지 관련 명령어 >

 

->데이터베이스 확인

mysql> show databases;

 

->테이블 확인

msyql> show databases;

msyql> desc user =>동일한 결과

 

2. 데이터베이스 생성 및 삭제

 

->데이터베이스 생성

① 첫번째 방법

# mysql -u root -p mysqlll

    msyql> create database TESTDB;

    msyql> show databases;

 

② 두번째 방법

# ./mysqladmin -u root -p create testdb2

Enter password:

# ./mysql -u root -p mysql

Enter passwor

 

cd /

msyql> show databases;

msyql> exit

Bye

#

 

->데이타 베이스 삭제

# ./mysqladmin -u root -p drop testdb2

Enter password:

 

mysql> drop database testdb2

 

# ./mysql -u root -p mysql

msyql> show databases;

 

3. 새로 생성한 데이터베이스 등록하기

-> 데이터베이스를 새로 생성한 후에는 mysql 이라는 관리용 데이터베이스에 등록

->mysql 이라는 데이터베이스의 db라는 테이블에 TESTDB를 등록한 것

msyql> insert into db  values('%','TESTDB','root','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

msyql> select host, db, user from db

 

4.  Mysql 사용자등록(데이터베이스 소유자)

->mysql 을 사용할 사용자는 반드시 user 라는 테이블에 등록을 해줘야함

msyql> insert into user (host, user, password) values('localhost', 'sspark', password('shcm0816'));

 

->정상적인 등록여부 확인

msyql> select host, user, password from user;

 

->sspark이라는 사용자로 mysql 데이터베이스로 접속

msyql> mysql -u sspark -p

Enter password:

 

->새로운 데이터베이스를 생성하거나 새로운 사용자를 생성한 후에는 반드시 reload를 해줘야함

# mysqladmin -u root -p reload

Enter password:

 

5. 테이블 생성 및 삭제

msyql> create table testtable (

         ->uid mediumint(4) unsigned DEFAULT '0' NOT NULL auto_increment,

         -> name varchar(12) DEFAULT "" NOT NULL,

         -> email varchar (20) DEFAULT "" NOT NULL,

         -> PRIMARY KEY (uid)

         -> );

Query OK, 0 rows affected (0.00 sec)

msyql>show tables;

 

-> 필드 구조가 정의한 필드구조로 생성되었는지 확인

msyql> desc testtable;

 

-> 삭제

msyql> drop table testtable;

mysql> show tables;

 

6. 테이블속성 및 구조변경법

ALTER TABLE 테이블명 CHANGE[COLUMN] 필드명 필드타입

-> 기존 테이블에 필드 추가하기

 

mysql> alter table testtable add column homepage varchar(30);

mysql> desc testtable;

 

-> 기존에 필드 속성 변경하기

ALTER TABLE 테이블명 CHANGE[COLUMN] 기존필드명 새필드명 필드타입

mysql> alter table testtable change column homepage home varchar(50);

 

-> 기존에 필드 삭제

ALTER TABLE 테이블명 DROP [COLUMN] 필드명

mysql> alter table testtable drop column home;

mysql> desc testtable;

 

-> 기존의 테이블삭제하기

mysql> create table sampletable

mysql> show tables;

mysql> drop table sampletable;

mysql> show tables;

 

7. 데이터 입력하기

mysql> insert into testtable (uid, name, email) values ('', 'parksungsoo', 'sspark09@soback.kornet.net');

-> 주의: uid라는 필드는 auto_increment 라는 속성으로 생성했기 때문에 이 속성을 가진 필드들은 실제로 데이터값을 주지 않아도 자동적으로 1씩 증가.

 

->삽입할 필드는 생략가능

mysql> insert into testtable values('','sontaesoo','shutterbug@orgio.net');

 

->특정 필드에만 데이터를 입력할 경우에는 입력할 필드이름만을 나열 그에 해당하는 데이터 입력

mysql> insert into testtable (uid,name) values('','junwooki');

->정상적으로 입력되었는지 확인

mysql> select * from testtable;

 

8. 데이터 검색

SELECT(데이터검색하기)

->데이터검색의 일반적인 방법

 

-> 테이블의 모든 테이터를 검색

mysql> select * from testtable;

 

-> uid와 name 필드만을 조회

mysql> select uid, name from testtable;

->where문을 사용하여 특정 조건에 맞는 데이터만을 검색

mysql> select * from testtable where name = "sontaesoo";

 

->출력 결과 레코드의 중복제거하기(DISTINCT)

SELECT DISTINCT sex FROM testtable

 

->다양한 검색 방법

 

->'soo'라는 문자가 포함된 데이터를 모두 검색

->SELECT name FROM testtable WHERE name LIKE '%soo%'

mysql> select name from testtable where name LIKE '%soo%';

 

->특정한  한 문자로 시작하는 데이터만을 출력할 때에 사용하는 조회형식

SELECT name FROM testable WHERE name LIKE 'park%'

mysql> select name from testtable where name LIKE 'park%';

 

->특정 필드에 데이터가 NULL 인 경우를 조회한것

SELECT uid, name FROM testtable WHERE age IS NULL

mysql>select uid, name from testtable where age IS NULL;

 

-> 특정 필드의 데이터가 NULL이 아닌 경우

SELECT uid, name FROM testtable WHERE age IS NULL

 mysql>select uid, name from testtable where age IS NOT NULL;

 

-> SELECT name, uid, email FROM testtable WHERE savem > 5000 AND sex='M'

-> SELECT name, uid, savem FROM testtable WHERE savem >= 5000 ORDER BY savem  

     DESC

-> SELECT count(*) FROM testtable WHERE sex='M'

-> SELECT avg(savem) FROM testtable WHERE sex='M'

 

9. 데이터 수정하기

->UPDATE 테이블명 SET 필드명=필드값 또는 산술식 {, 필드명 = 필드값 또는 산술식}*[WHERE

   검색조건]

mysql> select * from testtable;

 

->uid 4 번의 데이터에 name 값과 email을 입력해 봄

mysql> update testtable set name = 'junyangmi' where age = 23;

mysql> update testtable set email = 'jym@superuser.co.kr' where age = 23;

mysql> select * from testtable;

 

-> uid 1 인 사람 (parksungsoo)의 나이를 25살로 수정

mysql> update testtable set age= 25 where uid =1;

 

->uid 2인 사람의 나이를 30살로 수정

mysql> update testtable set age = 30 where uid =2;

mysql> update testtable set age = 41 where uid=3;

 

-> 한해가 지났으므로 모든 사람의 나이를 한 살씩 증가

mysql> update testtable set age = age + 1;

mysql> select * from testtable;

 

10. 데이터 삭제하기(delete)

->Delete FROM 테이블명 [WHERE 검색조건]

mysql> select * from testtable;

mysql> delete from testtable where uid = 3;

 

11. 새로운 사용자 등록

-> Mysql 에 root로 접속

./mysql -u root -p

->Mysql DB 선택

mysql> use mysql;

mysql> show tables;

 

->새로운 DB 생성

mysql> create database xlare;

 

-> user 테이블에 입력 (user 라는 테이블에 새로운 사용자의 계정이름과 권한설정을 할 차례)

-> 호스팅사용자에 대한 설정 user테이블에 현재 사용장0ㅔ 대한 권한들을 모두 'N'로 설정

mysql> insert into user valuses('localhost', 'xlare', password('123'),'Y','Y','Y','Y','Y','N','N','N','N','N','N','N','N','N');

 

->user  테이블에 입력확인

mysql> select * from user where user = 'xlare' ;

 

-> db 테이블에 입력

mysql> insert into db values('localhost', 'xlare', 'xlare', 'Y','Y','Y','Y','Y','N','N','N','N','N',);

 

-> db 테이블에 입력 확인

mysql> select * from db where db = 'xlare';

 

-> 새로운 설정을 바로 적용키위해 mysqladmin 이라는 관리자명령어로 mysql 을 재시작

->reload를 해주지 않으면 생성했던 것들이 적용이 되지 않음

# ./mysqladmin -u root -p reload;

 

12. 일반사용자 권한설정(보안사항)

#./mysql -u root -p mysql

Enter password:

mysql> show tables;

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

tables in mysql

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

columns_priv

db

func

host

tables_priv

user

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

 

->columns_priv 테이블

* 모든 특정 DB 의 특정 User 에 대한 특정 테이블의 각 컬럼에 대한 select, insert, update,

   reference 권한을 설정

mysql> desc columns_priv;

->db 테이블

* db라는 테이블에는 특정 DB에 대한 user들의 여러가지 권한들을 설정하는 테이블

mysql> desc db;

-> kebia 라는 데이터베이스의 소유자와 그 권한에 대해서 알아보고자 함.

-> kebia라는 데이터베이스의 소유자는 hyung 이라는 mysqkl 사용자이며 이 hyung 이라는 사용자

     는 이 kebia 라는 데이터베이스에 대한 각종 권한을 볼수 있음.

mysql> select * from db where db = 'kebia';

| localhost | kebia | hyung | Y  |   - - - - - ...........

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

 

->tables_priv테이블

* columns_priv 테이블처럼 각 데이터베이스와 사용자 및 그 테이블에 대한 권한 설정

mysql > desc tables_priv;

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

 

->user 테이블 : 새로운 사용자를 생성할때 이 테이블에 등록

-> 특정 사용자에 대한 Mysql에 존재하는 모든 데이터베이스에 대한 권한설정

-> 특정 사용자의 어떤권한에 대한 사항은 특정 데이터베이스가 아니라 Mysql에 존재하는 모든 데

     이터베이스에 권한이 주어짐.

-> host와 user, password 항목을 제외한 나머지 권한들은 모두 'N"로 설정

->특정한 사용자에 대한 특정한 데이터베이스에 대한 권한을 주려면 위에서 보았던 db라는 테이블

    에서 그 권한설정을 하는것이 안전함

 

13 .Mysql root 암호 변경하기

-> 방법 1:  mysqladmin 이라는 명령어 사용

# ./mysqladmin -u root -p password 12345

 

->방법 2: mysql의 set 이란 명령어로 root 암호 변경

# ./mysql -u root -p mysql

mysql> set password for root=passwd('12345678');

 

-> 방법 3: mysql 데이터베이스로 접속하여 update문을 사용하는 방법

# ./mysql -u root -p mysql

mysql> update user set password=password('12345' where user = 'root';

mysql> flush privileges;

 

->flush-privileges: 권한 테이블을 재시작한다. 권한 설정을 변경했을경우 반드시 재시작

mysql> flush privileges;

 

14. root 패스워드를 잊어버렸을 때는 어떻게?

->단계 1: 실행중인 mysql 종료

# ps -ef | grep mysqld

# killall mysqld

 

->단계 2: grant-table 미사용모드로 mysql시작 및 root로 접속

# .safe_mysqld --skip-grant-tables&

 

-> 단계 3: update문으로 root사용자 패스워드 변경

mysql> update user set password=password('12345') where user = 'root';

mysql> flush privileges;

 

-> 단계 4: 실행중인 mysql 다시 종료

# ps -ef | grep mysqld

# killall mysqld

 

-> 단계 5: 일반모드로 Mysql 재시작

# ./safe_mysqld&

# ps -ef | grep mysql

 

15. 특정 테이블의 구조보기(show columns from 테이블)

-> 특정테이블의 필드명 type, 설정값들을 보기 위한 것

-> 특정한 테이블의 칼럼(필드)구조를 보려면 "show columns from 테이블명"

-> 좀더 편리하여 많이 사용되는 명령문 " desc 테이블명"으로 확인

mysql> show columns form user;

 

->특정 테이블의 인덱스 보기

mysql> show index from user;

 

-> 데이타베이스의 설정상태 보기(show status)

mysql> show status;

# ./mysqladmin -u root -p status

 

-> 데이터베이스의 설정환경변수와 값보기(show variables)

mysql> show variables;

# ./mysqladmin -u root -p variables

 

-> 현재 데이터베이스에 연결된 프로세스들 보기(show processlist)

# ./mysqladmin -u root -p processlist

[출저] http://cafe.naver.com/h4c

[이 게시물은 관리자님에 의해 2011-10-31 17:32:05 Linux에서 이동 됨]

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 2개

->테이블 확인

msyql> show databases;

msyql> desc user =>동일한 결과

직접 입력하셨나보네요.

mysql> show tables; 이게 맞겠네요.

내용은 상당히 유용하네요. ^^
알찬 내용이네네요 감사합니다~

게시글 목록

번호 제목
20215
20214
20213
20212
28362
20211
20210
20209
20208
20207
20206
20205
20204
20203
20202
20201
20200
20199
JavaScript 계산기
20198
20197
20196
20195
20194
20193
20192
20191
20190
20189
20188
28361
20187
20186
20185
20184
20183
20182
20181
20180
20179
20177
8183
31027
8181
20176
20175
20174
20173
20172
20171
20170
20169
20168
20156
20154
20153
20152
8177
20151
20149
20148
20147
20146
20145
20144
20143
20142
20141
20140
20139
20137
20135
20134
20133
20129
20128
20126
8172
20123
20122
20121
20117
20116
20115
20114
20113
20112
20111
20110
20109
20108
20107
20106
20104
20103
20102
20101
31024
20100
20099
20098