SQL/MySQL

MySQL 설치후 가장먼저 해야할일

efrit 2007. 3. 15. 22:05
MySQL root에 비밀번호 부여하기

#./bin/mysql  mysql

mysql> update user set password=password('사용할 비번') where user='root';

mysql> flush privileges;

mysql> quit



#./bin/mysql  -u  root  -p  mysql

Enter Password : **********

mysql>

-----> OK!!


리눅스에서 root 유저라고 해서 MySQL 에서 root 권한을 받는것은 아니다.

처음에 사용자 계정과 패스워드를 넣지 않았을 경우

익명의 사용자(anonymous)로 접속이 가능하므로 반드시

MySQL 를 설치했을 경우에는 root 의 비밀번호를 정해야 한다.



ex) root 권한을 주지 않았을경우



#./bin/mysql

#./bin/mysql mysql

=> 2가지 형식으로만 접속이 가능하다.

password 부여시 password() 를 사용하지 않으면 다음에 제대로 접속 할 수 없다.

root 접속

#./bin/mysql  -u  root  -p mysql

Enter password : **********

mysql>



MySQL 설치후 기본적으로 설치되는 데이터베이스는 2개가 존재한다.

mysql(중요)
test

mysql 데이터베이스에는 root 비번이나 사용자 계정/권한정보등이 저장.

mysql 데이터베이스에는 여러개의 테이블이 존재하지만 일반적으로 db,user테이블을 많이 쓴다.


mysql>show databases;


MySQL -> 대문자 => 서버

mysql -> 소문자 => 데이터베이스


mysql>use mysql;                 =>mysql 데이터베이스를 사용하겠다는 의미


MySQL 서버안에 mysql 데이터베이스에는 5개의 테이블이 존재하고 그 계정에 대해서 데이터 베이스를 부여하려면 반드시 5개의 테이블안에 정보를 입력해야 한다.

=>데이터베이스와 사용자와의 관계를 설정하려면 db테이블과 user 테이블을 알아야한다.

db 테이블 : 일반사용자 계정등록

user 테이블 : 일반사용자에게 특정 데이터베이스 권한 부여하기


mysql>use mysql;

mysql>desc db;


일반 사용자 생성및 데이터베이스 권한주기

예제) "aaa"라는 데이터베이스를 만들고 "blueji78" 이란 계정을 만들며, "blueji78"이 "aaa"데이터 베이스를 사용할 수 있도록 권한을 부여하기

=>insert into 문으로 user 테이블에 사용자 : blueji78 비번 : 1234 를 넣으며 권한은 주지않는다.

왜?......... User 테이블에 권한을 줄경우 root 권한을 갖게 되므로 주지 않는다.

기본권한이 N(No)이기 때문에 주지 않아도 된다.


User 테이블에 blueji78 이라는 계정을 만들고 비밀번호(1234) 부여하기

mysql> insert into user (host,user,password) values ('localhost','blueji78',password('1234'));

=>비밀번호는 password()함수를 써서 저장한다.(그냥 저장해도 상관은 없다.)

mysql> select host,user,password from user;


"blueji78"이라는 사용자에게 "aaa"데이터베이스 권한 부여하기

mysql> insert into db values ('localhost','aaa','blueji78','y','y','y','y','y','y','y','y','y','y','y','y');

mysql> flush privileges;

권한을 부여한후 "flush privileges;"로 권한을 새로 읽어오지 않으면 제대로 동작하지 않는다.


"blueji78" 이라는 계정으로 "aaa" 데이터베이스 접속하기

# mysql -u blueji78 -p aaa

Enter password : ****

mysql>