리눅스

mysql 기초

와신상담 2008. 12. 14. 15:05
1. mysql 시작
# service mysqld start
(mysql 데몬은 mysql 계정으로 실행됨)


2. mysql이 작동 중인지 테스트하기
 1) 실제로 접속해서 확인하기
 $ mysql -u root mysql ( root로 mysql 데이터베이스에 접속한다. )
 mysql>  \s (서버 정보 보기)
 mysql > \q 또는 quit (나가기)

 2) 또는 mysqladmin으로 확인하기
 $ mysqladmin -u root version (실행 중인 mysql 서버 정보를 보여준다.)


3. root 패스워드 변경
 1) $ mysqladmin -u root password [패스워드] 를 사용해서 root 패스워드를 변경할 수 있다. 그러나 shell history에 패스워드가 텍스트로 남게 되므로 보안 상 좋지 않다.

 2) mysql에 접속해서 변경하기
  $ mysql -u root
  mysql> set password=password('패스워드');

패스워드를 설정한 후에는 $ mysql -u root -p 실행한 뒤, 패스워드를 쳐야 접속할 수 있다.

※ mysql의 root는 시스템 계정 root와는 아무 관계가 없다. 계정을 가진 어떤 사용자도 mysql에 접속할 수 있다.


4. root를 localhost에서만 접속 가능하도록 설정하기
보안상 root 사용자는 localhost에서만 접속 가능하도록 설정하는 게 좋다.
$ mysql -u root -p (mysql에 root로 접속)
mysql> select user, host, password from mysql.user;
(현재 등록되어 있는 사용자들의  id, 접속 가능한 호스트, 패스워드를 확인)

+------+-----------+------------------+
| user | host      | password         |
+------+-----------+------------------+
| root | localhost | 574a3a0a1e20ce6e |
| root | young     |                  |
|      | young     |                  |
|      | localhost |                  |
+------+-----------+------------------+
4 rows in set (0.01 sec)

mysql> delete from mysql.user where host != 'localhost';
(localhost가 아닌 곳에서는 접속할 수 없도록 함)
mysql> select user, host, password from mysql.user;

+------+-----------+------------------+
| user | host      | password         |
+------+-----------+------------------+
| root | localhost | 574a3a0a1e20ce6e |
|      | localhost |                  |
+------+-----------+------------------+
2 rows in set (0.01 sec)


5. 사용자 추가하기
mysql> grant all on *.* to user@localhost identified by 'secretpassword';

※ Beginning Linux Programming 3rd  참고...