티스토리 뷰

MySQL

Installation MySQL on Linux Fedora with yum

꿈이 있는 자유 2010. 8. 7. 11:26
바로 전의 글에서 MySQL 을 Windows7 에 설치했다. 하지만 역시 MySQL 은 Linux 와 가장 잘 맞는다. 필자 역시 선호한다. 전의 글에서 밝혔듯이 필자의 의도는 MySQL 서버는 Linux 에서 실행되고 MySQL 클라이언트는 Windows 에서 수행하려 한다.
리눅스에  설치하는 방법은 역시 3가지가 있다. 첫째는 yum 으로 편리(?)하게 설치하는 것이고, 둘째는 rpm 으로 설치하는 것이며, 마지막으로는 직접 Source 컴파일해서 설치하는 것이다. 이번 글에서는 yum 으로 부담없이 설치하는 방법을 설명하고자 한다.

1. 먼저, root 계정으로 switch 하자.


2. MySQL 데본 서비스(mysqld) 를 실행할 계정을 생성한다. 계정의 이름은 mysql이다. 그러기 위해서 먼저 /etc/passwd 파일에서 혹시 mysql 계정이 있는지 확인한다.

useradd -M -s /bin/false mysql

-M 의 옵션은 계정을 만들되 이 계정은 /home 에 홈 디렉토리를 생성하지 않겠다는 의미이며,
-s 의 옵션은 사용자 쉘을 지정한다는 의미인데, 이 사용자는 보안을 위해서 쉘 로그인을 하지 않을 것이기 때문에 false로 로그인쉘을 지정했다.


3. 혹시 mysql-server 가 설치돼있는지 검사한다. 쉘 프롬프트가 아무 내용이 없는 걸 보니 mysql-server 가 설치돼있지 않은 것을 알 수 있다.


4. yum 으로 install 하자.

yum -y install mysql-server


5. 간단하게 설치가 끝났다. 3개의 파일이 함께 설치됐다.


6. 설치가 모두 끝나면 MySQL 은 아래의 그림처럼 /usr/share/mysql 에 필요한 파일들이 위치해 있게 된다. 물론 아직 기본 데이타베이스는 설치돼있지 않다.


7. 위의 2번 항목에서 생성한 mysql 계정을 확인해봤다.


8. mysqld 서비스를 시작하자. 제일 처음 mysqld 서비스를 시작하면 데이타베이스가 설치된다.

/etc/rc.d/init.d/mysqld start


9. mysqld 서비스가 성공적으로 시작됐다.


10. 프로세스 목록에서 확인해봤다. 아래 그림에 보면 현재 MySQL 서버의 데이타베이스의 위치는 /var/lib/mysql 임을 알 수 있다. 또한 MySQL 서버의 명령어들이 들어있는 bin 디렉토리는 /usr/bin 에 위치해 있음을 알 수 있다. 반드시 기억해야 한다.

ps -ef | grep mysqld


11. 부팅할 때 자동으로 mysqld 서비스가 시작되도록 설정하자.

chkconfig mysqld on


12. root 계정으로 로그인했다. 패스워드를 넣지 않아도 로그인 된다. 큰일이다. 보안에 치명적이다. 아직까지 root 패스워드를 지정한 적이 없기 때문이다. 여기서의 root 는 리눅스의 관리자인 root 가 아니라 MySQL 서버의 root 계정을 의미한다.

shell>mysql -u root


13. 그래서 설치하고 나서 제일 먼저 해야할 일은 root 의 패스워드부터 설정하는 것이다.
현재 MySQL 서버의 계정을 뽑아봤다. mysql 데이타베이스의 user 라는 테이블에서 유저, 호스트명, 그리고 패스워드를 뽑았다. 역시 root 의 패스워드가 없다. 중요한 것은 MySQL 은 반드시 명령의 끝에는 ';(세미콜론)'을 넣어야 한다.

mysql>SELECT user, host, password FROM mysql.user;


14. 일단 exit 명령으로 MySQL 을 나온다.

mysql>exit
Bye

15. MySQL 을 설치하면 bin 디렉토리가 /usr/bin 에 있다. 여기서 mysqladmin 명령으로 root 계정의 패스워드를 설정하자. 패스워드는 여러분들이 각자 생성하기로 하고, 필자는 root 의 패스워드를 P@ssword 로 설정했다. 다시 설명하지만 여기서의 root 는 리눅스의 관리자 계정인 root 가 아니라 MySQL 의 관리자 계정을 말하는 것이다.

/usr/bin/mysqladmin -u root password 패스워드


16. root 계정으로 MySQL 로그인했다. 아까처럼 패스워드를 넣지 않았다. 그랬더니 역시 로그인할 수 없다. 패스워드를 넣지 않았기 때문이다.

shell>mysql -u root


17. root 계정이 패스워드와 함께 로그인하기 위해서 반드시 -p 옵션을 넣어야 한다. 그리고 패스워드를 입력해야 한다.

shell>mysql -u root -p
Enter password : 패스워드


18. 다시 MySQL 계정들을 확인해 봤다. 그랬더니 root 계정은 패스워드가 설정돼있는 것을 알 수 있다.

mysql>SELECT user, host, password FROM mysql.user;


19. 마지막으로 중요한 부분이 있다. 위의 그램에 보다시피 user 의 이름이 없는 것이 있다. 이른바 anonymous 계정인데, 역시 보안을 위해서 제거해야 한다.

mysql>DELETE FROM mysql.user WHERE user='';

mysql 데이타베이스의 user 테이블에서 user 의 이름이 공백인 계정 즉 anonymous 를 삭제하라는 명령이다. 삭제 후 다시 계정들을 확인하면 anonymous 계정이 삭제돼있는 것을 확인할 수 있다.

mysql>SELECT user, host, password FROM mysql.user;


이상으로 Linux Fedora 에서 yum 으로 MySQL 설치와 환경설정하는 것을 설명했다. 반드시 해 보시길...
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함